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!
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:
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.
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.
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 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:
Notes: Great for small projects difficult for more complex projects
Notes: Great for someone who wants a lot of resources to dig through, but the boiler plate code required can get old fast.
Notes: Very complex language with a lot options, makes it hard to wrap your head around. There are many right ways to do things.
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!