14 votes

Getting Started as a Developer from Scratch

I have been interested in making the gradual career change to software development from my current humanities field. This stems from a handful of different places. Of course the pay and flexibility are strong drivers but I like the idea of a field that is somewhat of a creative expression; one where you can manifest your knowledge and experience into something tangible.

I have no experience with programming other than SQL use in ArcGIS and am hoping to gain some knowledge about the field; so anything would be helpful. Whether what to expect from this line of work, where someone with no experience should look to get started and what to expect, personal journeys, etc.

Cheers!

4 comments

  1. Adys
    Link
    When I started with Python, I read the first few chapters of "Dive into Python" and started hacking. Here are the things that really made an impact in terms of how I learned: Switched to Linux as...

    When I started with Python, I read the first few chapters of "Dive into Python" and started hacking.

    Here are the things that really made an impact in terms of how I learned:

    1. Switched to Linux as my main OS. I never looked back, but it also gave me the amount of accessibility I needed to hack on my system and see results. I recommend Arch Linux to that end.
    2. Started by modifying existing programs. Addon development is great for that. My first pieces of "production code" were Lua WoW addons back in vanilla.
    3. Always seek to understand more. Why does this thing I just did actually work? How does it display pixels on the screen even? (There's years of learning in that direction, don't sweat it if you can't figure everything out by the second week)
    4. Never stop googling.

    Also, uh, unless you intend to actually do courses and such, just learn this stuff on the side. There's a lot of ground to cover.

    Another thought: Nowadays, if you're into game dev, I could even recommend grabbing a free copy of Unity and trying to make a super simple game. It's overwhelming for a beginner but also simpler than it might sound, kinda like Photoshop, you know what I mean? There's a ton of prebuilt stuff and it'll let you see results and get a lot of reward for fairly little involvement, all the while actually teaching you some useful programming skills.

    8 votes
  2. Emerald_Knight
    Link
    I don't have much time to spare today, but I'll leave you with this important piece of advice: never be satisfied with something working unless you understand exactly why it works the way it does....

    I don't have much time to spare today, but I'll leave you with this important piece of advice: never be satisfied with something working unless you understand exactly why it works the way it does.

    In other words, don't just copy and paste things from StackOverflow until you get something that works. You should be able to read code and understand what it's doing before ever even touching it, even if it takes you hours of mapping out the logic on a whiteboard just to figure it out. You'll be a far better programmer for it.

    Why? Because you'll always be mindful of what you paste into your code base, you'll start to see patterns rather than individual statements (kind of like reading words in a sentence rather than individual letters), you'll constantly be exercising your analytical skills which will make future analyzing much easier, and most importantly you'll know that a solution is likely to be the correct one before you've even wasted the effort on it.

    Mindful programming is a standard you should always strive for.

    4 votes
  3. what
    Link
    I’m still a student so I don’t have very much advice, but I’m always hearing great things about FreeCodeCamp, it could be a good starting point.

    I’m still a student so I don’t have very much advice, but I’m always hearing great things about FreeCodeCamp, it could be a good starting point.

    2 votes
  4. AllMight
    Link
    I graduated college in 2012 and have been doing professional software development most of the time since then. I've written code in python, java, scala, php, javascript, nodejs and others...

    I graduated college in 2012 and have been doing professional software development most of the time since then. I've written code in python, java, scala, php, javascript, nodejs and others langauges/frameworks.

    My main advice is just to pick a language and work your through as many projects as you can manage. There is no substitute for raw experience. That being said picking a language specific book will definitely accelerate your progress. Also remember to start small. For your first projects think about maybe building a simple command line tool that takes an input, makes a few small changes, and returns something to the command line.

    A small guide on the languages I've used:

    python
    Getting Started: Easy
    Strictness: Strict
    Tedium: low
    Resources: Medium

    Notes: Great for small projects difficult for more complex projects

    Java
    Getting Started: Medium
    Strictness: Medium
    Tedium: High
    Resources: Lots

    Notes: Great for someone who wants a lot of resources to dig through, but the boiler plate code required can get old fast.

    Scala
    Getting Started: Hard
    Strictness: Low
    Tedium: low
    Resources: Medium

    Notes: Very complex language with a lot options, makes it hard to wrap your head around. There are many right ways to do things.

    NodeJS
    Getting Started: Medium
    Strictness: Medium
    Tedium: low
    Resources: Medium

    Notes: Node is hyper popular and there are a good deal of resources but the framework suffers from rapid development. There are many many ways to setup and get started with node and it can be confusing to pick the correct options. On the plus side it is javascript based, highly adopted, and continuing to spread.

    If you have any more questions let me know!

    1 vote