There is a lot of chit-chat about programming nowadays, about this magnificent job that makes you cool and grants you some amazing magical powers that transform you from a pussycat into a real lion. The legend says that in order to be a real programmer you have to follow a long list of golden rules (known also as style guides). A list so controversial that in the end you will write code in assembler only to escape the cruel reality. I wasn’t able to find that list, all I've heard about it is that as a programmer you get extra cool points for the beard. But fear no more, as Murphy's law is saying: If at first you don't succeed, read the manual.
Don’t think of yourself as a superstar, you’re not one and you’ll never be. I'm not telling you to be a mediocre “machine" that follows blindly the orders, but you have to stop thinking about yourself as if you are this cool person who knows a lot but doesn’t tell anyone anything, he does not own nothing to anyone. He is the alpha and omega and when he speaks the sun should stop to listen. This is metaphorically speaking … bullshit. In order to achieve greatness you have to put yourself through hard work! You have to punish yourself for your mistakes, you have to push yourself every day to do something that you hate (sometimes) but you know that is good for you. That means work, that means to be a programmer, in fact that means to be a human being in general. Otherwise you are just another "dude" that constantly is looking for bacon to shove in his mouth. I do love bacon though, isn't' it amazing how satisfying it feels in your tummy?
In order to achieve greatness you have to put yourself through hard work!
Anyway on another note, BRACE YOURSELF, THE INTERNSHIP IS COMING. I was thinking long and hard about this, well not that hard, but long enough to write this little article. You are a student and you would love to be a web developer! Namely love not like, if you would like to be a developer then just drop it, it’s not for you, you have to LOVE this thing. So if you would love to be specifically a Front-End Developer, then my friend by the powers invested in me by Google Search and Stack Overflow, I will try to give you a small, but hopefully useful list of links that you can checkout and prepare yourself with the basics of front-end development.
You should really love not like, if you would like to be a developer then just drop it, it’s not for you!
The 3 basic pylons of web development
"Nothing special" they would say, “Easy peasy" some would speak, yet a lot of students are lacking the basics of the HTML. id vs class, inline vs block and much, much more of course.
So in order to get used with this mysterious creature you should check out these links:
Nothing special! Easy peasy!
Is that what you think about HTML?
“Children's play!" would say the backend guy, “Noob stuff!" could hear you from a Java guru. Don't let these affirmations fool you. CSS is a majestic beast, and if you won’t learn to appreciate it and understand it, it will find you and it will kill you, like that cool guy from Taken.
In order to play around with CSS it could be useful to use a reset file, but first check out these links:
- https://necolas.github.io/normalize.css/ (a reset file example)
You think CSS is that easy?
This thing was created in 1997 in a week and the boss guy said to the developer guy that it should have at least some similarities with Java (the cool kid around the block at the time) so don't expect much from it. Kidding, it’s a quite nice, powerful and a relatively easy to grasp programming language. But as any other language it has the possibility to do something in so many different ways and that for sure will play with your mind for a long time. In order to learn the basics check out these links:
- jQuery bonus
You don’t really need any fancy tools in order to test your skills. A simple text editor and a browser will be enough to see the result of your coding. I recommend using Google Chrome, because it has an amazing developer tool kit. If you want to share your work with your friends or you want to get some feedback from someone, you should definitely create a github account. That will allow you to post your code as an open source project.
You don’t need any fancy tools in order to test your web development skills!
As an extra homework, I’m always saying to students who are coming for an internship that they should try to reproduce their favorite websites. Start only with some particular components: menu, header, some thumbnails and then gradually try to reproduce entire pages. As examples: try your facebook/youtube profile page, your favorite pizza place website, your college/faculty webpage, etc.
I also created a small github repository with some small examples and a minimal file structure to get you started.
Here is the demo: https://victorjeman.github.io/simple_learning_project/index.html
Here is the github repository: https://github.com/victorjeman/simple_learning_project
You have the possibility to download a zip archive of the project.
Be sure to check out all the links, learn as much as possible and then we can talk about an internship if you are interested of course.
This article is intended for students who have small or no experience in web programming, so I posted here only the links with some basic information, those being crucial for them to understand first.
The author (Jonathan Z. White) of this articles did an amazing job of describing what you need to know in order to become a "Hero" Front-End Developer. Great stuff!
There is an immense pool of information about Front-End Development out there, too much and too heavy. If you want to learn the basics, then learn the basics, learn the theory, learn the theory, again and again, I know it sounds “stupid” for someone. Why should I learn the theory, should I do something practical? But believe me, without theory you will be able to do some nice stuff, but you won’t understand how they really work. It sounds ok, but it’s really not, doing something that you cannot really explain is like a curse. So my friends, don't be afraid to upgrade your theory level alongside your practical skills.