Best Way To Learn Code This 2018

in #technology6 years ago (edited)

Web-Development.jpg

Hey everyone, i'm so happy right now cause this is my first post on steemit and i'm pretty sure that anyone reading this is definitely going to leave this article feeling a sense of purpose.

Think about it, the past decade has seen an incredible surge in the space of programming, new technologies are being developed everyday and frankly i believe that with the way technology is advancing a lot of people would loose jobs as certain jobs become irrelevant as we speak someone somewhere has been cut off because of the development of some new efficient machinery that can handle the person's job better.

Lol still needs work

But don't be scared my friend as the learning to code doesn't just give you a valuable skill that is high in demand right now but it also provides job security as well as financial freedom and real freedom no 8am to 6pm job that doesn't pay as much as you ought to be getting, don't believe me? i'll try to make this concise so stay tuned and you'll see i'm getting at.

Learning to code can be extremely fun when you get the hang of it, the idea computers do what you want them to do so doesn't just make you feel like a friggin genius it also makes you feel like

you have superpowers

  • Will I Am (Black eye peas).

Ok so now you must have a boatload of questions like where to start?, how to start? and even how much it would cost you? well the good thing is that you can build a career in programming with the free knowledge loitering around the internet for example youtube has thousands of videos that can teach even a dummy how to code (not saying you are one), so the internet is filled with free materials on this stuff but that doesn't mean there aren't paid materials online, on places like udacity, udemy have excellent courses to kickstart your coding career but we'll be working with totally free stuff.

Benefits of learning code

If you've been here a while ( which you have obviously been ) I had previously shown a glimpse of what learning code has to offer but I think there's a need to talk more about this because even though learning to code is such a valuable skill there's still a need for us to justify why we are learning this skill.

I mean learning to code is just like learning a new language we can't go through all that stress for no good reason right.

So here are some reasons for you to take on coding :

  • You want to be working in an industry where there is a high demand for the skill and many possibilities to be in highly important roles at the top of the food chain.

  • You've noticed the surge of technological innovations in the past decade and want to be part of it.

  • You love being location independent. You want a skill that allows you to go anywhere in the world and still be able to find a job easily. If you decide to move to Iceland tomorrow, you want to make sure that you won’t have issues finding a job.

  • The biggest industry growth in the last couple of years has been in the cryptocurrency (Bitcoin), and artificial intelligence (Machine Learning) space. We interact with technology on the daily, and you want to not be left behind in the dust as these things take over our future. You want to understand and be able to pick up these skills.

  • You think change is good, and learning should never stop. So why not do something new?

  • Coders are part of the highest salary earners this 2018.

  • You have the ability to choose the hours you want to work and work at your own pace.

  • Learning to code allows you to build foundational skills that will give you multiple career options no matter what the future holds. For example, by learning to code, you’re able to better understand new up-coming technologies like distributed applications, blockchain, and cloud computing, and chose which field you want to jump into next.

  • And to me the best benefit is, you don't need a degree in computer sciences to take on the path to code. In fact the industry prefers hiring individuals that are self taught because if we think about it learning something as challenging as to code yourself requires a huge amount courage.

Hello anyone there? Ok you are still here, lets continue

Ever been in a situation where you want to go but don't know how to get there?

As i said previously we are going to be working with free materials but here comes the problem we know how we are going to learn but don't know what to learn.

This reminds me of when i first wanted to learn programming, i told a friend that my phone got stolen he consoled me then began narrating his own experience concerning his phones that got stolen in the past it was nice hearing his exciting stories cause the methods they used to steal his phones were quite amusing.

Then it came to my attention that if i could create a software that could track stolen phones, the issue of stolen phones would no longer be a problem that was a long time ago though so i began researching how to code and my experience was frustrating and i had to give up and do other thing so pls don't be that guy.

It took me 2 years to later take on coding but this time i decided to try a different approach an approach based on efficiency and that's what we are going to make use of here because we want to do something that lands us a job as quickly as possible and have fun along the way, so it's important you know that programming has a lot of niches/subniches like web development, mobile development, software development e.t.c plus there are lots of programming languages out there but lets stay on track here by heading into the web development niche.

Why web development

The web has advanced a lot during the years and at the forefront on it's development is javascript, lots of javascript technologies are being released close to daily if not daily and as a result this 2018 javascript is the language that is in high in demand.

So we are going to be focusing on javascript, but our starting point isn't really javascript but Html and Css but they all work together to create the big picture so i have designed a plan that will take a total of 6 months to complete but if you stick with me and complete this challenge, consider yourself a coder of sorts cause the road to code is a continious one.

Month One : Understanding how the internet works, basics of HTML & CSS, working with HTML & CSS

1. Understanding how the internet works

  • Understand the FeynmanTechnique In this article you'll learn the secret utilized by renown genius feyman to learn things quickly.

  • How Does the internet work: I think the newboston best explain this in his video check it out here.

  • The best overview of Computer Science: Crash Course Computer Science

  • There's no doubt that Harvard have some of the best computer science instrutors in the world and this tutorial proves my point see this course on youtube. It's truly awesome.

  • How to use the command Line: this by Zed Shaw.

2. Learning the basics of HTML & CSS

  • Learn HTML: HTML stands for hyper text markup language and is the the place to start when learning web development. The tutorials from codeacademy makes learning this easy and fun. Also see the entire w3school section on HTML it's a good read

  • Learn CSS: CSS stands for cascade style sheet and is the next ting you want to learn after learning HTML its core function is to style HTML in other words make it beautiful. Also learn this at codeacademy. Also see the entire w3school section on CSS to learn more about CSS not covered on codeacademy.

3. Working with HTML & CSS

After learning the basics of HTML & CSS the next step is to know how use HTML & CSS to create beautiful webpages then eventually host them online.

  • How does HTML, CSS and Javascript fit together: FrontendMasters course on web development. Only up to and including section on Javascript.

  • See this tutorial from traversy media. It helps you appreciate the usefulness of bare HTML & CSS

  • How to build a website/get a domain/and have it up and running: LearnCode.academy video.

  • Learn to build websites with Bootstrap. Start with this then go to the Bootstrap 4 documentation and add components you see there to a sample website. Understand the benefits that it provides vs writing CSS yourself.

  • Understand how to use templates to build websites using free themes and templates.

Month Two: Going full JavaScript

  1. This is where most of your focus will be in the later months. What problem does Javascript solve? Start writing little programs in Javascript to make your website behave in a certain way. This language makes your websites do things other than just look pretty. Start with these two courses: one and two.

  2. Read the Eloquent Javascript book.

  3. Learn about DOM manipulation.

  4. Read this great article about programming.

  5. Learn how you can use chrome developer console to write javascript. Do this CodeSchool course (only the console section). Then learn to inject script tags in your html to run javascript files.

  6. Use this guide from freeCodeCamp for short lookups if you have questions throughout the 5 months.

  7. Learn the new ES6 features.

  8. Learn git and Github with these courses. Create a Github profile and start making commits every day. Start developing a sample website.

  9. Terminology/Jargon: this video and this.

  10. Start using this guide whenever you have questions and you want to dig deeper into a topic.

Month three: Javascript + NPM + Building Your Website

By the end you should be able to: build a dynamic website and understand the entire process?

  1. Google Developer Tools → learn how to debug your programs and websites using google Chrome. Finish this CodeSchool course if you haven’t done it yet.

  2. Start attending local meet-ups on coding and Javascript.

  3. Learn the difference between synchronous and asynchronous javascript.

  4. What is the event loop? → Once you have a good grasp of Javascript this talk will be a game changer. Hands down the best talk on javascript ever given.

  5. Learn about Promises, and Async Await in ES7 here.

  6. Finally, watch this course by Douglas Crockford and read his book.

  7. Learn about the history of modules in Javascript here.

  8. download node.js and npm. Download lodash from npm and use browserify to use Common Js imports. Learn about it here. Understand why npm is such an amazing tool for developers.

By the end of the month you should have a personal website up with the codebase on Github. Use Github pages to have a live website for free.

Month Four: Working with JavaScript Frameworks (Vue Preferably)

Javascript frameworks are simply the next step in anyones Javascript learning, it just makes using javascript alot easier, it makes your work organized plus most importantly, it saves a lot of time.

There clearly lots of frameworks around but I think Vue is the more beginner friendly because apart from the fact that it's fast and lightweight it's learning curve is not as steep as that of React and Angular.

I mean Angular just has a lot of features that personally i just feel it's overkill while React has JSX which combines JavaScript with HTML which can be intimidating for beginners.

But Vue isn't overkill like angular and doesn't combine JavaScript with HTML like react in fact once you start working with Vue it feels so so smooth. Also I found it very easy for me to learn React after learning Vue

So its decided we are going Vue

  1. I think the best Vue tutorial I've seen Online has got to be this one by the net ninja it teaches you all you need to know, also head over to the Vue official Documentation to learn more of what Vue has to offer.

  2. Understand firebase and how awesome it is for building web applications. See this one and this video

  3. Start building web apps immediately, see if u can recreate this, this.

  4. Deploy your app on Heroku.

  5. Deploy your app on GitHub pages.

  6. Start building your online resume. There are people that give better advice than me on this. Check this and this out.

Final Month: How Databases, Servers

  1. HTTP, JSON and AJAX. Learn how these allow you to communicate with servers.

  2. Learn how to build an API server. Then go a step further and master node and Express.js here.

  3. Once you are done with this, use a fun API like this one and build a simple app.

  4. Subscribe to the computerphile youtube channel and watch their videos as they come. Even though topics may be difficult, it will introduce you to some amazing things.

  5. What is a Computer/Server/OS: buy a raspberryPi and build your own server. Look up different projects on youtube you can do with your raspberryPi. Finally, build a simple script that makes lights attached to your raspberryPi blink. Follow this course. Host your website on the raspberry pie. Be amazed at how cool you are.

Spend one day each on the below subjects. You don’t need to have a good grasp on them. Just learn why they are there and what problems they are solving: Testing, Machine Learning, Time Complexity, SQL, UX/UI, Continuous Delivery, Basic Data structures. You should be able to explain what a data structure is. Hint: Arrays and Objects are two popular Javascript data structures.

Summary

  1. Learn HTML and CSS. Then, buy a domain, buy hosting from a place like BlueHost or HostGator, get the cheapest option, make a website, and put it online. You can skip this option if you would like and use Github Pages.

But if you can afford it, actually buy one of the above hosting platforms so you understand how they work. This is going to be your portfolio from now on. Learn how to update it and make edits.

As you learn new things, continue to make it nicer and nicer. Don’t spend too much time on this. Just enough to show that you’re able to put something online and make it look nice.

  1. Start learning Javascript. Now how can you make your website interactive? Go through the above resources and see what Javascript does.

  2. Start pushing your little projects to GitHub. Employers will look at your GitHub profile and how active you are on there. Try to make commits 5 times a week on your personal projects (they don’t have to be big).

Also try reading through this and contributing to some open source projects like freeCodeCamp.

  1. Learn to google and use Stack Overflow when you have problems. 99% of problems you will encounter when you start out can be found online. Or join the Javascript IRC channel and ask questions when you are stuck.

Your local community might also have a slack channel. If not, pick one from here and talk to other developers.

  1. Become comfortable using a command line to do things. Always have it open when practicing and try using it instead of the GUI (graphical user interface).

  2. Learn the newest language features and trends in Javascript, and learn to solve problems with them (i.e. Promises, ES6, ES7, functional programming techniques).

  3. Attend local meet-ups and start talking to people. You will be really overwhelmed and confused by all of the things you don’t know. Don’t worry as this is natural. Just start meeting other coders so you can be surrounded by the lingo and jargon.

  4. Start listening to the podcast, Javascript Jabber. This will get yourself familiar with the jargon so when interview time comes, it doesn’t overwhelm you.

The first few times you listen, you will have no idea what they are talking about. Don’t lose hope. Eventually you it will all make sense. FunFunFunction is also a great weekly youtube channel you should follow. For a more complex podcast, but probably the best on software, check out Software Engineering Daily.

Also keep an eye out on the state of javascript survey every year to see what is trending in the industry.

  1. Start applying to recruitment agencies early. We are going to use them as practice. Most of these have practice interviews with professional coders so they can rank your skill, but you can use these to practice programming question, and ask these experts any questions you want!

  2. Start applying for jobs for which you are way under-qualified. You will get some interviews. You should never settle for a job. If you never ask, the answer is always no.

  3. Make your LinkedIn profile look nice. Don’t spent too much time on your resume. Make it one page, make it concise and write down all the skills you’ve learned in the previous months.

Being self taught shows a lot of courage. Remember that your resume is just to get you an interview, after which, they are as good as paper towels…ok bad analogy because paper towels are very useful.

I spent less than 2 hours on my resume. What makes you different than other developers is the fact that you come from a different field and background. How is this going to differentiate you?

  1. Interview and be amazed at how employable you are. Not all of them will go well, but then again, not many developers learned everything in the last 5 months. It shows ambition. ONLY apply to jobs on LinkedIn, and the rest should just be you emailing directly or calling the company you want to work for. Don’t waste your time on mass Craigslist, Kijiji, or Monster.com, or other job board ads. You can also use services like Indeed prime or hired if you want.

Final Thoughts

Consistency is key to Efficiency

Our aim was to be efficient in order land a job as quick as possible and if you've completed everything this article has to offer you can then call your self a proud frontend developer and it's truly something to be proud about. JavaScript script is a language that is constantly being updated so you must be ready to learn new things every day.

So I hope you enjoyed this post even though it was long till next time signing out.

Sort:  

Congratulations @iykeevans! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

The Steem blockchain survived its first virus plague!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!