Click here to Skip to main content
15,868,141 members
Articles / Interviews

Advice for those just starting out in Software Development

Rate me:
Please Sign up or sign in to vote.
4.88/5 (13 votes)
19 Mar 2014CPOL6 min read 27.6K   6   11
CodeProject So this is a question that a friend asked me in an email. I though it was worth sharing.Hey, how are you? I hope everything is going well for you. Im writing for advice or suggestions. I started taking classes for programming.

So this is a question that a friend asked me in an email. I though it was worth sharing. Hey, how are you? I hope everything is going well for you. Im writing for advice or suggestions. I started taking classes for programming. I was wondering if there is anything languages I should really focused on or any reading material you suggest?Okay here goes....

Rule of Thumb

It depends on what you want to do. However the key thing is to remember when starting out is Depth over Width. With that I mean learn one (or more than likely two) programming language well and its concepts will transfer to other languages. When starting out it is better to just learn how to do one very well that it is to know a little bit of a lot of different programming languages. After you have a pretty solid understanding of the core fundamentals of a language, its inclinations for certain architecture decision, design patterns, data structures, and general methods of code reuse etc..... So in short you can "think" in that language pretty well.

Talkin' Bout Some Relations... Database relations that is.

To add to this, early in your career you will more than likely need to know something about relational database management system. Those bad boys are used to store the data that you would be playing with and unless you are building tools for other developer (even sometimes then) you are going to have to have a fair bit of knowledge about how to preform Creation, Removal, Updating and Deletion queries using a special type of programming language. More than likely this will be a dialect of Sql short for Structured Query Language. As to which SQL there is some debate but I'm of the opinion that MySql or Microsoft Sql would server you well in the beginning as this is what I have seen most commonly in the wild (and are freely available).(this can vary by location so if you have your heart set on a particular location I'd do some research by looking at the job sites and querying for sql or database and see what shows up )In any case you should know something about relational databases.

Major Areas of Specialization

Web of Lies

In some cases just learning one language deeply is not practical. This is especially true for web development. Noting that IMO the additional web languages you work with aren't all that hard in comparison to learning other programming languages. Speaking in overly broad terms and possibly making a number of generalizations I'd say that if you are aiming to be a web developer (even just starting out) I'd expect you to know the following.




HTML

  • You should be able to stub out a basic html page with a header, body, form, a couple of input elements
  • Stub out a table
  • Uses for a div
  • Uses for a span
  • Uses for an anchor tag

CSS

You should be able to use a class, id and element selector. Create a even layout for a page just with a style sheet and little to no inline css or element attributes on your html.

Javascript

  • You should know what the DOM is and be able to access DOM elements by id and name,
  • Some jQuery because its so common
  • JSON, What it is and how is it used
  • Ajax what it is and how to use it.

Javascript - bonus

  • Object Extensions
  • the difference between "==" and "===" when talking about comparison,
  • what closures are and what the are good for
  • Prototypical Inheritance
  • General OOP concepts and Design Patterns and how to apply them in javascript. I.E. how do I make a method or property private.
  • What Underscore.js is
  • Common pitfalls in javascript
  • Some basic knowledge about SPA applications. What they are, when to use them, what are some libraries in the wild.
  • General code organization, possibly using tools like require.js
There are a ton of places to go learn these skills if you don't already know them. Additionally you will want to have a good grasp of a server side language like php, java, c#, ruby, python or even node.js (special case)

Other Areas of Application Development

Often Desktop applications are written in a language like C#, vb6, vb.NET, Java, c++ or some other language with a SQL database back end. Not as many as there were in the late 90's due to the growing popularity of the web but are still around. The Tiobe index is one kind of indicator for the popularity of programming languages(does not necessarily reflect the industry as a whole but you can't go too bad from learning one or two of the languages on the list)

Mobile development

Mobile development is mainly done with Java ( for Android) or Objective-C (for IPhone) but can also be done with web knowledge to some extent and work on both (http://phonegap.com/)








Easy to Hard

I listed some languages in order of easiest to most difficult from my experience,This is highly speculative and just my opinion.

  1. HTML CSS (go hand and hand)
  2. SQL
  3. PHP Python Ruby (about the same level of difficulty)
  4. C# Java (about the same)
  5. Vb.NET
  6. C
  7. C++
#3-#5 are beyond debatable.#2 is easy to learn the basics but has more than a fair bit of depth

Research

In any case whatever you decide I'd recommend a few spots

For FAQs

For learning online

For lots of free books

  • http://programming-mother******.com/become.html
  • https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md










  • Asking Questions Online

    For actually asking questions your best bet might be a chat room like an IRC I don't suggest starting out asking stuff at a place like stackoverflow just because they aren't really that friendly to newbies* and its kind of hard to find places that are. Maybe user groups on facebook or google plus might be better but those are kind of hit and miss as well.....*note* Stackoverflow is an awesome resource, just not the greatest place to start out asking questions. That being said if you are going to ask about something on SO I'd recommend you look at this on Stackoverflow and this article from Jon Skeet, the record holder for most rep on so


    Remember Remember.....


    Okay so that's a lot to process... but it should be a good start. Biggest thing to remember again is to pick one language and area and stick with it until it becomes easy.... Which takes a considerable amount of time.Also don't just read about the field or language actually make stuff, not big stuff but small simple things..... really small simple things and finish those small simple things and share them so others can critique.Best of luck to you in programming....Its hard but rewarding both financially and mentally and at times spiritually.

    License

    This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


    Written By
    CEO Hacker Ferret Software
    United States United States
    Owner at Hacker Ferret Software
    Software Consultant with over 8 years in the trenches.

    Specialized in .Net, javascript, and Android development. But adaptable enough for whatever you can dish out. I have a spiritual neck-beard just not a physical one.

    For more info about me check out Hacker Ferret Software where we focus on hacking together your software with love.

    We now offer a Free 30 Minute Consultation

    Comments and Discussions

     
    GeneralWriting Perfect Code is an endless attempt Pin
    adriancs9-Apr-14 17:43
    mvaadriancs9-Apr-14 17:43 
    QuestionGood info Pin
    Jon_Boy5-Apr-14 13:27
    Jon_Boy5-Apr-14 13:27 
    AnswerRe: Good info Pin
    musicm12213-Aug-14 11:02
    professionalmusicm12213-Aug-14 11:02 
    thanks

    GeneralMy vote of 5 Pin
    Paulo Zemek20-Mar-14 5:46
    mvaPaulo Zemek20-Mar-14 5:46 
    GeneralRe: My vote of 5 Pin
    musicm12220-Mar-14 6:17
    professionalmusicm12220-Mar-14 6:17 
    GeneralGratitude Pin
    Tokinabo20-Mar-14 2:16
    professionalTokinabo20-Mar-14 2:16 
    GeneralRe: Gratitude Pin
    musicm12220-Mar-14 6:18
    professionalmusicm12220-Mar-14 6:18 
    GeneralMy vote of 5 Pin
    Volynsky Alex19-Mar-14 12:48
    professionalVolynsky Alex19-Mar-14 12:48 
    GeneralRe: My vote of 5 Pin
    musicm12220-Mar-14 6:19
    professionalmusicm12220-Mar-14 6:19 
    GeneralRe: My vote of 5 Pin
    Volynsky Alex20-Mar-14 11:55
    professionalVolynsky Alex20-Mar-14 11:55 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.