Frontend development has had such an amazing growth in recent years. Most of the cool new products we see today would not have been possible or at least would have been much trickier to create without the advances in frontend technologies. As a result, there is an increased demand for engineers with frontend skills.
However, mastering frontend development and best practices can be both a scary and daunting task, and this is true even for software engineers already proficient in other areas of web development. In this post, I would talk about a few things I think would help to get you started in frontend development or to become comfortable with frontend development.
Being passionate about developing user interface is the first thing I can think of. From my experience, most things I've become better at are things I really love doing. If thinking about building user interfaces doesn't excite you, or you would rather talk about something more interesting when you get together with someone familiar with the subject, then you might want to look into doing or learning something else. That said, it is also possible to build a passion over time. So if you are just testing to see if building user interfaces is for you, be sure to ask your self after some time if there is something else you would rather be doing, if there isn't, you might have found a match!. Up Tinder.
Master HTML/CSS. It is important to know that there is much more to learn than the beginner course on w3 schools and tutorials point. While these wonderful resources and others like them would give you a very good start, just think of them as the high school before heading to college. After learning these resources and of course practicing what you've learned, I advise buying professional courses online where you would be exposed to more advanced concepts. Including how the browser parses your codes, How to manage differences in browsers, proven methods of building layouts, writing more reusable codes, preprocessors and build tools, performance hacks… the list goes on. You can find some very good courses on Udemy. The other thing I like about these courses is that some are authored by engineers in top 1% companies on the planet, and so you get to learn from the very best.
If you have gone through all the processes above, you sure are almost ready to be called a frontend engineer. But building software, in general, is not all about working codes. Among other things, you need to be able to manage the codes and the multiple versions of the code efficiently, you need to be able to test your codes easily and on the fly, you want people to be able to see what you can do, so you need to deploy your software to the cloud. The list goes on depending on how big your software would be.
To manage code and code versions, you need a software versioning control tool (SVC), while there are many others, the only version control tool I've worked with is GIT, this is the dominant software versioning control tool used today, so you would be fine just learning GIT.
Testing your codes contains multiple steps, and can be anything from writing unit tests, snapshot tests, functional tests, and integration tests. Testing is very important and must not be overlooked if you plan to have stable frontends with as little bugs as possible. The good thing is, if you have bought a course to learn any of the frontend frameworks, testing would almost certainly be covered so look out for that in the course outline before purchasing the course.
In most organizations, deploying codes to the frontend is not the job of the frontend developer, there would be someone for that mostly known as a DevOps engineer, but non the less you should know how your product gets served to the users as this would give you some ideas of things to do or not to do while writing the code. As this is a large topic on its own, I don't want to get into it here but this might be a good place to start. Also, deploying the code would almost certainly be a part of any good frontend course so look out for that too when you purchase a course.
I hope this resource can get you started on your frontend development journey. But remember to take things one step at a time and not feel stuck. When you can't understand a concept, ask someone, if that’s not an option, move on to the next thing and come back later with a clear head. It’s really that easy.
The things listed here are not everything you need to know about front-end development, there are a lot of concepts not mentioned here. But we all keep learning day by day on the job, depending on what we are trying to build so keep an open mind. Ciao.
References and further reading: