#though I can always use tutorial/resource recommendations because I'm a newbie
Explore tagged Tumblr posts
Note
any tips on how a newbie could start learning about software engineering?
Hi Nonny! Oh gosh, I might go on a bit here. I got into software engineering in a really weird way, basically fell into it, and that was like over a decade ago so a lot of things might have changed! There's a lot of good online resources for getting started in programming and engineering, and the whole maker-space scene is brimming with really cool and interesting people you can learn a lot from. But, beyond the cut you'll find my not particularly well organised thoughts!
Try to pick up a few different programming languages, including different types (like interpretted/scripting, imperative, object-oriented, there's a lot!)
I highly recommend learning Python, it's really useful for a wide range of stuff, I often use it just to automate something that would otherwise be tedious to do
Remember that all languages are a bit different, and will differ in the kinds of problems they're better at solving. No language is a panacae to all problems, so the more languages you know the less time you'll spend hammering a square language into a round hole! I think all languages can teach you something about programming, even if you don't use them so much in the end
For how to learn? I can't direct you to good resources, beyond knowing that there's a lot of good tutorials online, and saying that looking at tutorials is usually better than jumping in the deep end (as you can fall into bad habits that way)
For the engineering side, a good place to start is learning about software lifecycles - how do you go from need to finished solution? Waterfall and V are easy to understand but a bit old-school now, I think agile has really taken over (though is not always implemented well)
Design and requirements capture is so, so important, and so difficult, they're really good things to look into for engineering
I can't find the right thing to call it, but a useful idea is writing tests for your code first, based on the requirements, and then writing the code to make those tests pass. Not always appropriate, but being exposed to that idea helped me change the way I did some things
Version control! Very important, I didn't use to think it was until I made an error in a script that ended up deleting all the code me and two others were working on. Now I use it even for small at-home projects, because it's great to be able to go "oh no, I've broken everything, let's revert back to something that worked". Git is probably the most popular, and github has a really good tutorial (featuring their adorable cat-octopus mascot)
Once you've got the hang of version control, you could try getting involved in some open source stuff, check out https://www.firsttimersonly.com/ for some guidance on that
For me, it was really important to get a degree in this stuff. Like, any job I would have been interested in required a degree. I don't know how much that's changed, but it's worth thinking about. Depending on where you are things like conversion courses and intercolated years (where you take a year out of a degree to do some stuff from a different degree) might be available? And maybe nowadays there might be more companies that will judge you based on a porfolio of previous work instead of just a degree
Final thought, it was a bit of a meme back in uni, but the engineers always used to say that the big different between a software engineer and a computer scientist was that an engineer would actually consider what their code was going to run on. It was a bit mean, but it really hammered in the importance of considering the environment your code will run in
Okay, that was a lot, I'm not sure how clear it was, but I hope it helps!
If anyone wants any other advice about particular stuff, shoot me an ask! Though I received this one in August so I can't guarantee how quickly I'll see it and reply, sorry.
39 notes
·
View notes