"He who knows it does not say it, he who says it does not know it." - Lao Tzu
Lao-tzu was right, nobody knows everything when it comes to web engineering: but first things first, I’ve got to tell you a story.
Once upon a time, in order to learn how to program one had to enroll in a college - for a certificate or a degree - and endure hours, sometimes even years of course hours.
There was no other way.
Knowledge was mostly based in textbooks, the most popular version being free PDFs which on average had like 300 pages. It gets better, these digital books used to be stored on floppy disks (or stiffy disks, depending on your age ;-) ), one of the most coolest pieces of tech.
Several years passed, the web bloomed and the gentrified areas became more easily accessible to average Joe and Jane.
Things went from having a personal home page (GeoCities anyone?) to free personal blogs that are fully responsive. Huge changes.
Then the heresy happened in the U.S Ivy League circles, this heresy shocked the Universities tradition and many tongues wagged.
But there was no way of stopping it.
History has a way of repeating itself, only this time the heresy was in the form of Massive Open Online Courses (MOOCs).
You see, before this, learning how to code was best done the traditional way that involved having to physically attend class and pay tuition and other fees.
But the web wasn’t asleep, platforms like M.I.T’s Open Courseware were already voices of dissent along with a whole plethora of coding blogs and websites.
This was and still is one of those voices of dissent that challenged the traditional learning model, a place where programmers could post questions about bits and pieces of code that they needed help with, and get to have their more experienced peers answer their question.
And all that was and still is for free.
Passion & Creativity
Dear reader, the bits and pieces of our story: an ultra-short story, the heresy, and Stackoverflow get woven together by passion and creativity, of course under the watchful eye of Lao-Tzu’s wisdom.
Passion is essential since you'll be spending many hours trying to make your code work, and continually pushing yourself to write better code: in fact, the code you write this year will feel so embarrassing to look at next year.
Since you won't start making money from your skill every time you're writing code, your passion for the art will come in handy.
Curiosity, don’t listen to what they say about curiosity.I believe that contrary to killing the cat, curiosity gave it Nirvana, and curiosity is key for two main reasons:
- Web search
Most web engineers take for granted the art of web search, for you to be a decent developer, you have to know how to ask Google or whatever your favourite search engine is, the right question.
Hitch-hiking The Galaxy
Now that we find ourselves in this galaxy called the world wide web with billions of web pages and keeping in mind that we have only one lifetime, a way to efficiently navigate is essential.
So how do we navigate this vast galaxy?
...by doing clever searches, the more clever your search term is, the more relevant your search results, and thus the easier your problem solving becomes, so on and so forth until you achieve the state of coding Nirvana, like our dear cat.
Explain it to me like I'm a 4-year-old.
Here is how i do my searches:
Prefix the domain to your search term. For example,
django: How to create a celery task,
python: Linked lists,
android error: NullPointerException,action_bar not found.
The re-use principle
Most of what you're trying to do has already been done, your main problem is customizing existing open source code solutions.
In short re-use code.
So with this in mind, refine your search term to your problem space, for example
android: sample XMPP chat apps/clients,
Open-source version of ExampleProject, and so forth until you find something that suits your needs.
When you get bored of web pages, checkout the video results, mostly on Youtube for a change.
You can start off your programming adventure with a free introductory course on Edx, to get the fundamentals of a programming language and tinker with an example project.
Once you learn your first programming language and become fairly good at it, learning another language will be much easier and faster: especially now that you'll be armed with killer web search skills.
Road To El-Dorado
The road to El-Dorado is vast and littered with many failures and a few successes, I wish you all the best in striking gold in the start-up world.
Welcome to programming. :-)