“If you can't explain it to a six year old, you don't understand it yourself.” -- Albert Einstein
I love and hate this particular saying. I love it for the simple fact that it's absolutely right and hate it because it's one of the most aggravating sentences ever created: let me explain.
Once you explain what you're working on, people have the tendency of assuming that they can do your job as well as you can. I can instantly see their minds working and saying, "we can just hire anyone off of the street to do his job; heck, I can even do his job! Why are we paying him again?"
If you explain it using your field's vocabulary then they start thinking you're pretentious and that you need to step back down to Earth like every other normal person.
So, it's a lose, lose situation.
Programming takes it to a completely new level. You have to be truly passionate about what you do. Slowly, but surely, you'll find out that your programming job involves a heck-of-a-lot more than you believed. Combining every discipline is sometimes an art and truthfully can be overwhelming.
The learning curve is steep! Trust me! Stop looking at the first 2 - 3 chapters of your programming book. They're just fancy math problems. After you pass chapter 3, get ready to make that chair sweat. So now to explain a little bit about what it takes to be a programmer (web-developer to be specific).
You start off like most, learning HTML. You make a few pages and you're ecstatic! Short-lived though. You find out soon that in order to make the page look even remotely nice looking, you need CSS. So you venture off to learn CSS. You are a master now. You've created some fancy drop-down menus, even converted the site to be mobile friendly. You want to optimize, so you find out about bootstrap: what have you been missing?! Bootstrap makes everything so much easier, however, you still need that foundation of HTML and CSS. So now, what? Well you can be a web-designer...tweaking the pages to make them look nice. However, that's not you. You want to find out what happens after you press the Submit button on a form and you want to streamline your work.
You do some research and you find out about PHP. You pick up a book and boom: reality check. Holly cow is learning PHP ever more difficult than forums would lead you to believe (they're right though...it's easier than most other languages). So you spend months learning everything you can; you watch tutorials on YouTube; you join forums left and right and finally it clicks. You understand it. You create your first web-page in PHP. A year or so down the road and you're decent at writing PHP code. A few more years and you're somewhat of an expert. I'm not even going to write about SQL or MySQL since it should be understood that you pretty much will always use SQL in your PHP code.
In the mean-time, you're visiting other websites and clicking around when you notice that pages are changing content of particular sections without reloading the entire page! How? Well you find out that you have to learn JavaScript. You learn as much as you need to accomplish your common tasks. You want more! So you really get down and learn JavaScript. A year or so down the road, you're pretty awesome.
Now you realize that entire pages are receiving content without reloading the browser. You right click on the page to inspect the source and viola! Nothing! How? Welcome to AJAX. You gotta be kidding me right? Before venturing to learn AJAX you need to first know how does this thing called the Internet work. How are "headers" sent? What is this thing called the HTTP protocol. You learn that too. If everything prior to this didn't stop you, AJAX definitely wont. So you learn it; hey, another tool added to the belt.
You're finally ready to start applying to work for programming companies when you see the requirements list: Must know MVC Framework XXX (CodeIgniter, Yii, CakePHP, Laravel, Symphony, Zend). How bad could it be...you already know PHP! Get ready for another butt-whooping. Have fun over the next few months trying to unlearn a lot that you've already studied and learn the rules of MVC (unfortunately you can't just skip into MVC).
Alright, now you're ready! You apply and what happens next? Your code apparently blows chunks! Remember all those times when you read about proper commenting, code structure, etc...well it didn't matter to you but it sure does matter to your hiring manager. So you go back and start studying Software Engineering. You also have to research documentation and best code practices for each framework (i.e. CodeIgniter likes methods with underscores; Zend doesn't accept underscores: great!).
So what else could there be: Get ready to learn about Git, CMS, Product Management, jSON, extensive out-of-code documentation, etc, etc, etc)....let's not even talk about the MEAN framework and how it's slowly integrating itself into our lives.
So to be a web-developer, you pretty much have to know HTML (HTML5 now), CSS (CSS3 now), PHP (or another ServerSide language), SQL, JavaScript, AJAX, HTTP protocols and how they work, Software Engineering, MVC Frameworks, CMS, etc...and no, you can't learn it in a month.
I hope I've made myself clear-enough for a 6 year old to understand.
Comments
Post a Comment