The intended audience is those wanting to commit to learning to code, but who have minimal experience. I aim to provide a quick background on things I wish I'd groked (i.e., understood) sooner.
Any feedback would be massively appreciated!
New developers often ask what language they should learn first.
- Tons of (free!) resources via a HUGE community: This lets you learn at your pace, and promises that help if you need it. Though I'll tell you right now, the best advice you'll get: "read the source!" of whatever tool you're using. The sooner you start there, the sooner you'll actually know what's going on.
Use the Source, Luke
Let's get into these reasons a bit.
An aside to explain that a bit more
Soon after that, you'll realize that the framework you just spent 3 months learning has become 'old', and the whole thing is sham. When you get over that, you'll realize we're all just trying to get data into the browser and see what the users do with it. So it's no big deal, just keep trekking along.
That feels like a pretty low barrier to entry - whether or not you would-be-dev readers will be brave enough to try it RIGHT NOW is another question.
It's a jungle out there
It's not all fun and games! Learning to program is a giant pain in the ass, and even though I love it, every day of work is dealing with things are truly a giant pain in the ass!
That tools called 'Babel' are trying to help but that we really don't need them now that NodeJS has gotten it's act back together.
All of that might be gibberish to you, and don't worry! Things are always getting better, and this stuff only starts to make sense once you start exposing yourself to it.
Programming is one of the most rewarding things you can do. Finding solutions to difficult problems, having that eureka moment when something finally works - if you enjoy those moments, you will enjoy writing code.
Things not to be afraid of
Don't be afraid! The details will only sink in if you keep swimming in them. My friend and mentor told me early on that the articles I read on the web that I understand the least, the ones that that introduced the most new ideas - those are the really valuable moments in your growth. Disgesting new information starts with familiarizing yourself with the new lingo.
To that end, I'm pulling together a list of potentially off-putting WTF terms that you may come across in your travels. If you see any that you'd like a little background on, or that you would have liked to have seen in this context, please drop me a line and we'll add a TL;DR to aid the next traveler.
- HTTP: Hypertext Transfer Protocol is one way that computers communicate with each other, and the most common method for modern web applications.
- SPA/Single Page Application: An SPA is just another word for a web application - it is referred to as 'single page' because you can access many different 'views' without the url changing. Ex: Facebook's homepage (and Facebook in general). I don't like this term because I don't find it useful... I always think, what's the difference really, and there's not much to know there. I don't know if I've ever heard anyone actually use it. Nevertheless, you see it often enough, so here it is.
- Library/Framework: These terms refer to projects that you can use to build more things. Coding projects fit together like legos, and our libraries and frameworks make it possible to do alot more with alot less. A Library is typically smaller than a Framework, and less demanding. You would use a library to get a utility task done (like encrypting a password), while a framework would ask you to write your code in a structured way to work properly (like structuring a web application in ReactJS).
If you've made it this far, you're a trooper. I hope this has done you some good!
I'd like to end this with a list of resources and next steps, but as I haven't put that together yet, for now you're gonna get these tidbits.
If you want to get started on your own website, I'm working some blog posts toward guides like that, but don't expect to do too many - there are just so many already.
Please reach out or leave a comment if you have any ideas for how this could be more helpful!