Coder Social home page Coder Social logo

rmcnaughgithub / frontend-the-beaten-path Goto Github PK

View Code? Open in Web Editor NEW

This project forked from frontenddevelopers/frontend-the-beaten-path

0.0 1.0 0.0 4 KB

Post offering advice and a targeted approach toward becoming a well formed Frontend Developer.

frontend-the-beaten-path's Introduction

Learning Front-End: The Beaten Path

###This post offers advice and a targeted approach toward becoming a well formed Frontend Developer. Consider this your framework for future topics.

Many years ago, a good friend and mentor made a poignant comment on my abilities. He told me that libraries, frameworks, and content managers were a crutch. Stating that if I didn't have a Computer Science degree I would never evolve as a developer. I knew my code comprehension was abysmal and that I used Google to find code snippits, but didn't think it was that glaringly obvious.

Months past and his advice stuck with me. I was offended, conflicted, and resented the notion that I HAD to get a degree to improve. Absolutely everyone was telling me to return to school while I was young, but his advice mattered most. He saw my work daily and knew where my skill was better than anyone. The fact is that he wasn't trying to be hurtful, he simply saw that I lacked something important, fundamentals.

At this point in my life, returning to school wasn't an option. I had a family and full-time job. I needed to do something, even if it took evey ounce of my scattered free time. So I took the core concept, and worked out a rational approach that fit into my life. It requires that you buckle down as though you were in school and takes time, but it works.

After many years, we now use this approach with all of our green devs at my development studio Uxiliary. It's updated often, so continue checking in with us in the #frontend_path channel. If you're reading this outside of our community, you can join us by visiting http://frontenddevelopers.org.

We'll start by working on our root knowledge using EDx's Harvard CS50 course. You'll learn binary, memory, compilers, C, and other languages relate to modern programming. Some of the tasks feel a bit silly initially, but you'll rapidly move into complex topics like PHP, databases, and javascript. It takes around six weeks to complete if you work on it every night. You'll probably not need to complete all of the projects (although you should), but at the very least I recommend setting up the environments and writing as much code as possible. The goal here is to get a handle on this basic stuff so everything else clicks. If you skip this step the rest of this post is pointless.

Once you've gotten close to completing this course, begin working on algorithms—practiced patterns that developers follow. Nothing crazy, just stuff that you will come across like sorting arrays, etc. You'll find that by repeating the same pattern over and over you build a kind of muscle memory. I used Codewar's Javascript katas. They'll teach you how to write testable code, understand a written problem, algorithms, and finding breaks. It's tough, but worth as much time as you can give it.

While you're working on algorithms, take as many raw Javascript classes as you can. Specifically, finish the entire Freecodecamp, Codecademy Javascript, and work on a few of the CodeSchool courses related to Javascript. They each have really killer approaches to education. You should find yourself smashing through the easy stuff, but still learning different approaches to similar problems. If you're missing any HTML or CSS now's the time to grab those topics from these sites. Try to stay away from advanced topics like ES6, Node, and other frameworks/libraries that stray from core knowledge. This includes jQuery! All they'll do is create bad links and confusion.

By now you'll be tempted to read books and posts. I can recommend dozens, however, I would stay completely clear of everything except what's in this plan. Wait until you're in a place where you can look at a pretty substantial application and disseminate what it's doing without difficulty. The closer you stay to this path, the less likely you'll feel lost or overwhelmed.

Ok I lied, there's one blog you should read. OOP, chaining, scope, closures, prototypes, this, callbacks, etc. make sense but are likely a bit vague. Check out Javascript is Sexy. They have a post titled How to Learn Javascript Properly that explains a lot of this stuff. The follow-up 16 JavaScript Concepts JavaScript Professionals Must Know Well is equally good. They'll advise you on how to move forward beyond what I've written here. I found that if I add each post to an application like Instapaper or Pocket, I was able to line up posts without leaving open tabs or saving bookmarks and return where I left off.

All of this knowledge is worthless unless you can apply it somehow. Join groups, classes, and take on pro-bono projects. Connect with other so you can practice your verbal pseudo-code. Even if you're feeling shy or not on their level, other developers won't detect it or care (unless you're arrogant). The honest truth is that all creatives feel inadequate and want to share their knowledge. So get out there and build relationships, try to solve their problems, and ask lots of questions.

Finally, the biggest trick to success is consistency. You can't miss days or weeks at a time. You'll need to put your head down and make it your second job. Flood your life with these topics so it becomes all that you think about. If you find this difficult, set a goal. Mine was, "I would like to have the ability to sit in a programming interview with an Fortune 500 company and feel confident."

Good luck! If you have any questions or comments feel free to connect with me or an admin. We're happy to help.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.