Ten Things Every Beginning Developer Should Know

In the world of web development, there’s so much to look at and do, it can be confusing to decide where to start as a beginner. If you’re wanting to be a back-end developer, what languages do you learn? Do you learn HTML and CSS if you just want to work in PHP and Ruby? Should you learn basic design principles as well? Or, should you learn a little about everything?

A lot of people are afraid to jump into web development because of this choice paralysis. Depending on what they want to do, they hear endless opinions about how and where one should start.

I’ve been a front-end developer myself for over ten years, since I was in the sixth grade. So I’ve definitely been there at each language’s beginning. I was there when there were no standards or CSS, and I’m here now to tell you what’s really important to know if you want to be a developer.


1. Figure Out One Language (and just one!)

Forget about what everyone says about being a generalist, or knowing as many languages as possible. When we’re just babies, we don’t try to learn English, Spanish, French and Italian at once. We start with one language and we master that first. Then we move on.

The web is just like that. If you’re wanting to be a front-end developer, start with HTML first. Then learn CSS, then move on to Javascript or wherever else you’re wanting to move to.

If you have absolutely no clue on what you want to learn, you might have a bit more of a difficult start. There are tons of web languages out there and they all do something different. I would suggest finding something you really like online or on your computer, figure out what it’s written in and learn that. For example, if you’re a huge fan of iPhone games, figure out what language it’s written in and learn it.

Otherwise, just do a bit of research with each language and figure out which one looks cool. Yep, you can do that.

2. Web Standards & Best Practices Are Your BFFs

No matter what language you decide to learn, make sure you learn it correctly. Don’t start out learning HTML by coding sites into tables. Read up on the best practices and standards for your language and follow them to a ‘T’. It may feel like extra work in the short run, but I promise in the end it’ll make your life a lot easier–and the web a much better place.

3. Save the Flashy Stuff for Last

Yes, each language has something super cool. CSS has CSS3, HTML has HTML5, Javascript has jQuery and AJAX….however it’s important to start with the basics first and work your way up. No way should you be learning how to code the next Facebook if you can’t even figure out the standard “Hello World” echo.

4. Find Something You Like–and Copy It

No, I’m not suggesting that you steal. The way people learn is to emulate others. Babies learn to talk and smile and cry by imitating their parents. Artists learn how to draw by copying favorite drawings, and sometimes even starting out by tracing (that’s how I learned!). When I first learned HTML, the internet was still new and there wasn’t anything online to help. So, I found some websites with layouts I liked. I viewed their source and copied and pasted on to my own site. From there I changed the graphics and began by changing their HTML (coded tables!). This quickly taught me what happened when I moved a TR or a TD, or removed properties like cellpadding.

Emulating sites for the sake of learning is the quickest way to learn any programming language out there. So just try it!

5. Soak in Information

Soak in as much information as you can about web development. Read books, watch videos, listen to podcasts and find articles and blogs online. This will also keep you up to date on new features and prevent your new skills from becoming stale. We all know the old guy who thinks because he knows Visual Basic from the 90′s, that that makes him a ‘webmaster.’ Don’t be that guy.

6. Learn How to Get Along with Designers

There I said it. Websites can’t exist with developers alone, designers are the skin to your developer bones. So many programmers I know can’t stand designers because designers are picky about the minute details and how things look, whereas we just care about how awesome it works. But believe me, you’ll need a designer some day to save your butt with a client. So learn how to get along well with them.

7. Learn to Build the Wheel–But Don’t Reinvent It

You should learn how to code anything in your chosen language, but that doesn’t mean you need to recode it every time you start a new project. Save code snippets and plugins for yourself that you can reuse with each project. Why recode a contact form or login script every time? This will decrease your coding time exponentially and cut down on errors and bugs.

8. The Right Tools Make All the Difference

Technically, you could code a full site on your plain text editor, but I don’t recommend it. Get yourself a proper IDE, whether free or paid. A good IDE will help you indent your code properly, highlight it for easy editing and check for errors. Try to get used to using one that will work with several, or all, code types.

9. Decide What Else to Learn–After Mastery

After you get good enough with your chosen language, now is time to figure out what’s next. If you want to niche yourself into one language, make sure you step your knowledge up and become an expert. If you want to learn another language or two, that’s great as well. Just wait until you know your original language well enough to work alone in it.

10. Just Get Started

I’m here to tell you a secret. It really doesn’t matter what language you learn or what ‘extras’ you learn either. All that matters in the beginning is that you just get started doing it. Now go and do!

Your Thoughts

Any other advice for the beginner developers out there?

Image by Sean K

Comments

  1. says

    Amber,

    These are excellent suggestions for noobs and frankly, veterans as well.

    Some additional suggestions I would make are:
    Clearly define what you are learning and stay focused on that.
    Follow two or three “Rockstars” via RSS and Twitter for the area you are learning.
    The latest and greatest is wicked cool, but often untested. Play there, don’t work.
    Problems are best solved by going to Google first, not last.

    Thanks again,
    Dean

  2. says

    Great post! Really inspiring and motivating as I’m a print designer starting to learn about web design.

    Best tip? Learn how to get along with designers!

  3. says

    Great Post Amber,

    What I find hard is to specialize. It seems as a web developer we are always being asked to make a website, then a video, and Flash too. It’s hard to give full focus on one area. But, I’m working on it. Great list!

  4. says

    “Learn to Build the Wheel–But Don’t Reinvent It”

    That’s the most valuable and accurate piece of advice i’ve read in a long time. Great article.

  5. says

    Steve,

    You are right. It appears that being a Web “general practitioner” is getting harder and harder. The more I learn about CSS, for instance, the more I roll my eyes at job entries that want rockstars in CSS and HTML and PHP and JavaScript and .NET and MySQL and …

  6. says

    A good tip is not to start using PHP to learn how to program. Although the barrier of entry is low, once you start moving on to anything fairly complex, because of PHP’s flexible nature, you’ll end up doing things the wrong way (or badly).

    Check out Ruby or Python, both nice languages to start with. Once you’re comfortable with those and you understand the standard concepts of programming then visit PHP again if you must, but be sure to use a framework such as symfony or CI.

  7. says

    “But believe me, you’ll need a designer some day to save your butt with a client” – Great! And absolutely true :)

    My 2c: I’d suggest adding something on what to use as a primer to start with – tutorials (there are lots of them out there and often they first catch the eye) or to find a good book? But how can a beginner understand that this concrete book is good? Or maybe find the nearest beginner’s course / training? What is preferable for a beginner?

  8. says

    “Amber is a freelancer with over 10 years of experience and specializes in clean, semantic and valid HTML5, CSS3 and WordPress development.”

    Really? HTML, CSS and WordPress?

    Don’t call yourself a developer! :-)

    …let alone advise beginners!

    ———–

    Beginners, do this:

    1. Be prepared to constantly learn every day for the rest of your professional lives .. if possible, enjoy the learning!

    2. Pick up a strong Object Oriented Language, I recommend Java or Python.

    3. Identify crappy code and learn how to fix it; Recommended reading — Bob Martin – Clean Code, Fowler’s Refactoring

    4. Pick up Scala / –insert your favorite functional programming language–

    5. Learn to use version control, preferably DVCS such as Git or Mercurial

    6. Start contributing to open source projects — the best way to learn!

    7. Leverage existing frameworks to get things done — Usually they’ve already implemented patterns correctly and there’s a lot to be learnt while being productive!

    8. Follow the right people on Twitter / FB / G+ etc.

    9. Always use IntelliJ IDEA <—- this suggestion may start a flame war :-)

  9. says

    I think the most important one you missed is “find someone good and get them to teach you all they know” working on your own is fine, but you only get a very limited perspective on what you are doing. Find someone who has done it all before and get them to tell you why you are doing it wrong.

    When you have done that find another. Writing code is a life long learning persuit, if you don’t like learning and being wrong find something else to do.

  10. says

    Awesome article!!! Good one for starters, the tips provided should be used once one step into web development. It’s really inspiring… Thanks for sharing…

  11. says

    @Dean I like that Twitter thought. I’ll have to give it a shot. Maybe that’ll give me a reason to actually use Twitter. ;)

    @Steve That’s definitely an ongoing challenge, but it’s really hard on your profits to be slow and mediocre at a lot of things. The more I do this, the more I’ve learned to focus on my strengths, which has lead to more enjoyable work and better clients.

  12. says

    #1 is the MOST important. Many people think to much how to get started and how to do something, but in the end they just have to start it and then it will work out!

  13. GG says

    A few years back, I remember expressing a desire to master HTML to a cocky young wonk and the ensuing bike shed discussion about the significance of learning HTML versus PHP,Java, Ruby, or Python.

    Much like “Internet Coward”, this douche bag attempted to rip apart my regard for this structural language and to question its importance as a skill set for a bourgeoning web developer. Well, I didn’t have a come back at the time. I gave in to a fear that I would be learning too little and for too long if I took the time to master HTML exclusively. I flittered around and became a “Jack of All Trades and a Master of None” in terms of learning a little bit of HTML, CSS, XML, Javascript, PHP, MySQL, and Ruby. Presently, I code and fast as a snail, due to this “buckshot” approach to learning.

    However, recently, I have had an epiphany. HTML is my “God” now! I have determined to master it before I pursue any other scripting or programming language.
    Truth be told, HTML is an excellent starting point for anyone interested in segueing into iOS / mobile platform development. HTML5 (its W3C Standard is slated for completion in 2014) is the next big thing and anyone who has mastered HTML 4.01 will be in a very favorable position to get in on this golden opportunity as a mobile app coder.

    Thanks for breaking things down for the noobs, Amber. You are a sweet heart!

    Much Respect!

  14. GG says

    PS

    How can you learn freakin’ Java or Python if you have no clue about what an object, a method, a property, a class, an id, a global function, a local function, a DOM, etcetera, etcetera “IS” for christsake??!

    The problem with nerds who like to tell people to dive into learning Java or C++ or any other difficult programming language for absolute beginners is that they forget (or don’t care) that they are dealing with ABSOLUTE BEGINNERS!

    The best place for beginner web developers to start learning about object oriented programming is with scripting languages like Javascript. Once they master this, they can pretty much take on any programming language successfully because they will have a firm understanding of comparison operators, Boolean statements, switches, arrays, and so forth.

  15. says

    @GG

    Colorful language aside. You are correct. Solid understanding of HTML is important and fundamental to web development. It may not be a programming language, it is the output canvas for all web programming.

    Also, as a fellow piece-meal, little of this, little of that, programmer. Having mastery over the fundamentals of programming in the pursuit of one language first is a far better way to go.

  16. says

    Good article, but your first point is based on a faulty argument.

    I agree that it’s not a good idea to try to learn multiple coding languages at once, but that is different than learning natural human languages. You said:

    “When we’re just babies, we don’t try to learn English, Spanish, French and Italian at once. We start with one language and we master that first. Then we move on.”

    First of all, babies don’t “try” to learn a language in the way that we try to learn a computer language. Babies do it naturally, seemingly without any conscious effort, much different than how we go about learning how to code.

    Secondly, you say that babies don’t learn multiple languages at once. That’s not accurate either. Babies raised in mono-lingual environments will learn only one language at once because that is all they are exposed to; however, babies in bi-lingual or multi-lingual environments very easily develop proficiency in each of the languages they are exposed to simultaneously.

  17. says

    All of the points are valid, even if some happen to be arguable.

    I think the best approach is to start off with HTML because it is the foundation of the world wide web, regardless of what you want to do. Thereafter, you can learn a little bit of everything. I think this approach is the best because you get a feel for what you don’t like and what you like, you can’t gauge something you never tried.

    I started off with HTML, and then I learned CSS. I also took art classes in high school, but now I’m majoring in CS in a community college transfer program. Through HTML and eventually learning PHP, I figured out that I want software development to be my mainstay but since I like web design, I’d keep user interface design as a secondary skillset. So while I’m not spreading myself too thin, I have versatility in things I enjoy. I don’t do illustration, graphic design, marketing, or other things that a more graphic central person would be into so I can focus in on my own niche (although it’s kind of a dual-niche).

    I personally don’t think there’s anything wrong with learning PHP either, there are plenty of books, some are great. I recommend the books by David Powers, he has written one on procedural PHP and OOP PHP. The problem with learning a complicated language first is that they’re forced to focus on errors and complicated syntax, over fun problem solving through the use of a programming language. This is boring and likely to discourage someone not very strong in logic already (or who just has no programming background whatsoever). I think algorithm design and problem solving are what should be focused on, then synax and compile errors. Kind of like, you don’t tell people to learn Calculus before learning Algebra, which is what comes to mind. I also think structural programming lays out a foundation for people to understand the general concept of source code and what it does. OOP is complicated, someone should know the basis of programming before moving into it in my opinion.

    If someone is interested in doing things right, they’ll continually seek out resources that give them wisdom. A guy on an electrical engineering show said engineering is a process of doing something poorly, and then doing it less poorly. You have to be willing to be wrong before you get it right, that’s in all logic and problem solving disciplines. As long as the person seeks out good resources, they’ll have a good foundation for which they can grow their knowledge base. I first learned PHP, now I’m learning MooTools (which is highly OOP based) and Python for a general purpose scripting language. The way I do things is a bit extensive, but it’s the proper way to make sure you make the most of your resources.

    I love user interface design and application development, and I wouldn’t know this if I hadn’t dabbled in everything. :) I recommend new comers just jump in and have fun! Learning comes to those with curiosity.

    Also, follow blogs from respected authors. It’s a great way to keep up to date on technology and be informed. Talking to people in your field is absolutely one of the most important parts of learning.

  18. Richard Fonteneau says

    I would recommend gathering a firm understanding of constructing UML diagrams before diving into OOP. “Measure twice, cut once.”

  19. says

    Awesome Article!
    I really enjoy being a freelance programmer. Ive been doing it for 5 years. I do all my work over the internet. I use websites like http://www.crowdcircus.com/ They have a great escrow payment system and bidding system that is relaible and safe. I must admit, when I first started,it was a little tough, but with sheer determination im now an independent programmer and web designer.

Trackbacks

  1. [...] tweetmeme_source = 'FreelanceFolder'; În lumea de dezvoltare web, există atât de mult sa se uite la şi nu, poate fi confuz pentru a decide de unde să încep ca un incepator. Dacă sunteţi dorinţa de a fi un dezvoltator back-end, ce limbi ai învăţa? Nu veti invata HTML si CSS dacă doriţi doar să lucreze în PHP şi Ruby? În cazul în care vă afla principiile de bază de proiectare , precum şi? Sau, ar trebui să învăţaţi un pic despre tot ceea ce [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>