Front-End Developer Handbook 2017
I see people everywhere complaining about how frontend development is moving too fast, and stories like mrits.<p>In 2011 I was sales manager in Mexico, doing WordPress sites for free on the side just for fun. In 2012 I migrated to the US with my family (legally). Then I worked in maintenance for 6 months until they fired me because I couldn&#x27;t talk English.<p>After that I decided to try to live from building websites. I started to learn JavaScript and CSS, because already knew some HTML.<p>So I landed some clients as freelancer doing fixes on old sites, updating WordPress. When I landed my first WordPress site from scratch I didn&#x27;t know how to do it, so I bought a book on the topic and used the gig as practice while reading the book.<p>I was able to maintain my family doing responsive WordPress sites. Then I started to get issues with all the grid frameworks and stuff, it was too complicated to make a simple website responsive.<p>So I started to do what everyone tells you not to do: &quot;don&#x27;t reinvent the wheel&quot;. I got myself to build my own grid, I did it, and I still use it Today. The process was painful because I didn&#x27;t knew any real CSS so forced myself to learn it, when I got it done I was very confident I could do any layout in CSS.<p>One freelance gig I got was a SEO tool to count the amount of words, paragraphs, syllables, etc. of a given text, it was really exiting, because I knew I had to learn JavaScript to do it. At that time Backbone was really complicated for me, so I did it but really mostly copy&#x2F;pasting stuff, I was happy with the result but not with the methodology. One thing I really learned from this project, is how to setup my development environment with Grunt.<p>So at this point I knew enough CSS and how to setup task runners.<p>From 2013 to 2015 I did only freelance work, then I got a full-time job at a small advertising agency, doing WordPress sites.<p>I was able to get my paycheck doing stuff that wasn&#x27;t complicated for me, get a PSD, make it a responsive WordPress site (with the grid I did) and done. So I was able to learn JavaScript on my free time, so I did what worked for me in CSS again, go a reinvent the wheel.<p>I did my own &quot;Backbone&quot;-like framework, and was able to learn about Object-oriented programming and how to do it in JavaScript using prototype inheritance. Then I found out about React, and started using it too, learned about functional programming, pure functions, immutable data, declarative syntax.<p>At this point I was using Gulp, Sass, Babel, NPM, learned how to use the command line too, Vim, Tmux, was using Linux as my primary OS, and other very cool tools.<p>So in 2016 I landed an interview for a company where the job title was frontend developer, so for me was like no more &quot;make my logo bigger&quot; website clients. I got the job, Today I do only JavaScript using React&#x2F;Redux&#x2F;React-Router, I learned Vue.js on the side and learned Python too, so now I can do my own backend using Bottle&#x2F;Flask on my freetime, learned about MongoDB, Postres, SQLite.<p>And these days I&#x27;m building my own virtual dom implementation to understand better how it works. And yes, a new JavaScript framework gets released everyday, and yet I try to use as many as I can, spend a couple hours building a todo app, reading the source code to see what I can learn from it, etc.<p>Right now I&#x27;m loving preact, and couple days ago found out <a href="https:&#x2F;&#x2F;github.com&#x2F;hyperapp&#x2F;hyperapp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;hyperapp&#x2F;hyperapp</a> which is really cool.<p>The point of my boring story is:<p>- frontend development moves fast, get with it. Don&#x27;t expect to learn something and keep using the same shit for ever.<p>- learn JavaScript, not frameworks. If you understand the language you are going to be able to understand any framework better<p>- if you want to learn, reinvent the wheel<p>- avoid the hype<p>- if you are freelance and need to make a simple app and you are comfortable with jQuery, go fucking do it in jQuery and don&#x27;t mind about the new cool stuff yet.<p>- Backbone, Angular, Ember, React, Vue, or Preact? Whatever, when I open the source code of a project built on any of those frameworks I only see JavaScript patterns, that&#x27;s it.<p>If you get a job and they are using something you don&#x27;t like or something you don&#x27;t know, read the documentation, learn the basic idioms and try it. Again, at the end, it&#x27;s just JavaScript.<p>I mean, I was 29 when I started my journey, no English, no CSS, no JavaScript, no knowledge about software development good practices. Now I&#x27;m 33 and very happy with my job as frontend lead developer.