How It All Started: The Back-End
I started my journey as a programmer in the back-end. While in school, I took several programming classes in C++ and Java. I learned algorithms and data structures (arrays, linked lists, stack, queues, objects, etc.) in my classes. Typical stuff that you expect from a computer science major. Growing up, I always loved and was good at math. So I knew that I wanted to do math for a living since it came so naturally to me. It was really effortless. So I decided to get into programming. At first programming was very different from anything that I had done in school. A lot of the logical thinking involved required me to be very precise and exact to every single step in a process. This is a very quick story on how I became a programmer. I want to fast-forward a bit and talk about my back-end stack.
My back-end bread and butter is PHP and MySQL. PHP is a server-side language that runs off the server. MySQL is a database that holds data. Together, PHP and MySQL work together to build web applications. I started learning how PHP could be used to run queries against a MySQL database. A query is just a question that you ask and expect an answer in return. Every time that you look up something on Google, you are asking a query. Once you ask a question, Google looks up the answer in its “database” somewhere and replies back to your question with an answer. With this answer, you are able to make a decision with the information that you just received. I wrote a previous post about how we use information to make decisions. What I learned in being in this profession for so many years is that you must become good in a few skills first before expanding and branching out. Once I knew this, I slowly started to get into other skills, next came the front-end.
Going From Back-End to the Front-End
After becoming well-versed in the back-end, I started to get into the front-end. While the back-end deals purely with data, the front-end is about how applications look. The back-end is the “inside” of the application while the front-end is the “outside”. Think about a book, the book has an outside cover and pages on the inside. The outside cover has a nice title in a pretty font, an enticing picture to draw into the story. The inside of the book has pages of text. The pages tell the story and are the meat of the book. The outside cover and image are the hook that draws you in.
The front-end is what people would call the design and the back-end the development. The front-end runs off a web browser where the back-end as stated previously, runs off the server. The information resides on the server because you need something strong and heavy enough to handle all of that data that your application processes. This is why the data needs to reside on a server and not on someone’s web browser. The front-end’s purpose is mainly just to render small pieces of data at a time on what we call web pages. A web browser can only handle a bit of data at once, which is why we have many web pages to handle all different kinds of data. The most common languages to render web pages on a web browser are HTML, CSS and JS.
HTML is just a language used to structure your web pages. I learned HTML before getting into CSS and JS because HTML serves as the base of a web page. HTML is typically what most people learn first when they just want to learn how to format their content inside a web page builder. You have probably seen basic HTML tags like “strong, img a”. Those are tags to bold text, add an image and add a link. This makes the most sense since foundation is first needed before building a web page. Then I added CSS, which is what is called the styling of a web page. The styling is the look of a web page, the color, the font, the spacing, all of this is done via CSS. Then comes JS, which creates user interactivity with a web page. JS is important for making your web pages come to life. However, JS can be very heavy on a web page if too much of it is used. Therefore from my experience, JS must be used sparingly and with the right application and expectations in mind. The reason why is because JS can slow a web page down if overused. This was just a quick run-down of the front-end. Now I would like to move onto layout design and learning Photoshop. If you are looking for a free Photoshop alternative, I talked about Photopea in the previously linked post.
From Front-End to Photoshop
Once I became familiar with CSS, I got into Photoshop. I learned how to create basic layouts using layers, slices, filters, blending options, lassos, etc. I definitely do not claim to be anything even close to a graphic designer. This is certainly not my background. I just know enough to get by. As usual, I took every opportunity in my life to learn more and more. I never said no to trying something new and I always knew how to integrate my newly gained knowledge to my repertoire. That is something that I learned along the way. Not only was it important to learn new skills in order to grow in my profession. I also knew that I had to somehow work that knowledge into what I already know. Success is not just measured from how much you know, but rather how well you are able to take each piece and combine and intertwine them together, creating something new. I always knew that as humans, we possess the ability to create something great. The only way to do this is if we took each piece that we learned and put them together. Then we will truly create something amazing. So I want to share a simple concept that I still see websites violate even today as part of what I learned in design, contrast.
The Importance of Color Contrast
Design is not only about making your stuff look pretty. Making your stuff readable and legible is just as important. In fact, a simple design that is clean and easy to read will deliver information faster to people than something that is needlessly complicated. I would like to talk about color contrast. Contrast deals with how easy it is to see and read colors when they are placed together. For example, a good contrast is white text on a black background, or black text on a white background. Why? Because those two colors are complete opposites of each other, black and white. This is called high contrast. Low contrast is when you combine colors that are similar and hard to read when together. Some poor color combinations include orange and yellow or blue and purple. Since we need to be able to read colors, in extremely simplistic terms, it is because we need to combine a hot color (red/orange/yellow) with a cold color (blue/red/purple). Just a little color theory that I learned in one of my classes during college.
The User Experience: How UI Shifted to UX
I learned something like this in what they called HCI (Human Computer Interaction). This has to do with how humans use and interact with a computer. We used to call this UI, or user interface, which today we focus more on the user experience, which is UX. Before, we placed a lot of focus on how people use a computer. The most important part to realize here is how users feel about their experience using an interface. Since a shift has been placed more on the user’s experience than just simply their actions with a computer, UX has become more popular. This is how we came up with terms like user-friendly and user-experience. The goal is to allow users to accomplish their task in the fewest amount of computer interactions possible.
Back-End + Front-End = Full-Stack
Once you have a good grasp of both the front-end and back-end, you will become what is known as full-stack. When I first started in this field, having separate front-end and back-end professionals were common. I supposed that the reason why is because each end was so vastly different that people were masters of only their end. As the years went on, expectations increased, requiring people to start learning the other end. This is completely possible, to learn both ends. This just takes years because you really have to master one end before you move onto the other. When you learn both ends and reach full-stack status, it truly is something special and magnificent. When I became a full-stack developer, it came mainly out of necessity and evolution. It just sort of kind of happened. We all follow different paths in life. One single individual takes the same exact path as another. I say this because depending on where the wind blows, we might go in the direction of being full-stack. Once you get there, you feel great. Being full-stack is such a great accomplishment. You can handle both ends and are really flexible when you are needed on both ends. After I became full-stack, I started to get into SEO.
SEO: Everyone Wants to Be on Google
In a nutshell, SEO is just anything that you do to be found at the top of the first page on Google. Compared to my other skills, I would say that SEO is the most…nebulous? Sounds like a good word to describe SEO, let us go with that. I say nebulous because creating your website and putting it out there for people to see is one thing. SEO has a lot to do with your competition and optimizing your website to out-rank them. This is tricky because you need to know what your competition is doing and seeing how you can improve on them. Now you see that not only do you have your website to tend to, but also those of others’ too. When you stand back and take it all in, it is a lot. This is running a business, whether it turns a profit or not. Just that this business is online and has competition like everything else in life. The purpose of this post was not really to delve too deep into all of my skills. More like it is meant for you to see how I think about where I started and where I am now. I am reflecting back and there are some life lessons that were learned along the way.
How All of my Skills Are Related
Earlier, I mentioned how we needed to not only learn new skills but how they could be used together. Skills learned in isolation do not realize their true power until combined. Just think of a key opening a lock. The key and lock are two skills. Once you open the lock with a key, who knows what true potential is in store for you. So the back-end and front-end are related as they become one with being full-stack. Once you know the front-end, you can use basic graphic design skills with Photoshop to learn, or better yet Photopea to do some simple layouts. Then once you are done with your own website, get it on Google with some SEO. So this is the route that I took and it makes a lot of sense when you think about it. First you build the website and then make it found on Google. So this is how all of my skills are related.
Increasing Your Value for Future Opportunities
The reason why we need to gain skills along our professional journey is because stiff competition only increases by the day. As we add more onto what we already know, we become more valuable and increase our value. This becomes important as future opportunities arise that might interest us. As mentioned earlier in this post, if we can take our skills and combine them together, that only makes us even more valuable. Again, we take things slowly and learn our skills very well and thoroughly. We know that we are ready to take on new opportunities when the moment is right. This is something that we think of in the back of our heads as we continue in our journey. I wanted to bring this up because there is a reason why things happen in life. We learn things, we go in different directions. Whatever path we take in life, if we take each path as a learning experience then better opportunities will just show up. Of course the timing of these events are not always in our control. We do have the ability to steer the wheel as much as we can to open new doors. Everything takes patience in life, do not give up. Life is long enough where we can slow down and enjoy the journey. Do not rush to the destination too early because it might be too much for you to handle if you arrive there too soon.
I wanted to touch upon my background more and discuss how I was able to learn so many skills over the years. I needed this post to do some reflecting on how I got here and really think about the directions that I have taken. I want to know how well I learned these skills over the years. I also want to make sure that I still know the skills that I learned at the start and not take on so many new ones without mastering my existing ones. This field requires a lot of reading and updating due to constant changes online. This is definitely a rewarding profession but moves a very fast pace compared to many others.