5 ms·
Ask HN: Becoming a Software Engineer?
Hello Hacker News!
I've been a long time viewer of the forum but never posted anyything but I have appreciated browsing the site every day for a couple of years now. This is my first post and my first account. The community has inspired me over the years, both in terms of the quality of dicussion given and by presenting thoughts and opinions that I've never even considered before.
Because of this I'm considering changing my career options to Software Engineering or a similar computer science related role. I'm currently a penultimate year business student at a University in the UK. Some of my modules have contained the R programming language and small amounts of Python. Nothing considerable for the most part but very interesting none the less but that's as far as my computer science education goes. When I finish my bachelors I would like to do a Master Degree (conversion course) in Software Development.
I'm 29 years old so I do feel a little bit of time-pressure (in terms of what to learn) and my maths skills are lacking, since I only have a Math GCSE from school about 11 years ago. For this part, usually my coursemates at Uni do the more quanititative parts since I struggle alot with this.
I've dabbled here and there in Python, R, Bash and Lua in my own time, and I'm not technologically illiterate (I really enjoy playing with the UNIX eco-system and I used to build computers as a kid) but nothing too major.
I didn't find 'The Pragmatic Programmer' very helpful, Automate the Boring Stuff on Udemy threw many errors at me and felt outdated, and I'm definitely not ready for 'The Art of Computer Programming', though I've tried.
The problem I'm facing is, no matter the resource I use I just don't feel like I'm developing a deep understanding, or even comprehending what it is I'm learning. I get very overwhelmed by the complexity of it. I've tried doing coding books for children and I even find some of those a bit beyond my grasp.
Whatever resource I use, I ultimately feel like theres just pieces, 'something', missing, or the explanations aren't clear at all, I get frustrated and then try again with another resource. I'm starting to feel like I'm the problem, albeit some of the resources I've used could really do with a more rigourous understanding of what 'beginner' means.
Many of them tend to be very 'academic' sounding, much like the maths books I've tried and full of complex language or terminology that I don't understand.
Resources I've tried: Codecademy, Datacamp, Udemy (automate the boring stuff, Python Bootcamp: Zero to Hero, etc), FreeCodeCamp, TheOdinProject, FutureCoder, Python.org, LearnPython.org, learncpp.com, C# for Beginners, leetcode, edabit, exercism.io, Code Wars, Code Abbey, Project Euler, Codinggame.com, books from NoStarchPress and various other books and youtube videos (e.g. FreeCodeCamp Videos).
Many of the publications by Manning go right over my head, NoStarchPress is good but sometimes assumes the reader knows a lot more than I do and video courses like Packt, Treehouse, Udacity and Datacamp have varying levels of teaching quality and contain gaps.
I feel like everyone but me can sort of 'see' the code in a sort of 'logical' engineering kind of way and that's the skill I'd like to develop. Is that possible?
I saw 'Thinking in Systems' by Donella Meadows reccomended so I picked the audiobook version of that up and I'm going through that.
Should I stick with business? Am I capable of learning these things even if I find them overwhelming? Am I the problem? How do I resolve this, if I am the problem? What am I not doing that I should be doing?
- gabelschlager 4y agoI had a similar problem to you. While it was easy for me to complete assignments on Udemy or similar, I didn't develop a deep understanding of anything I am doing. What finally helped was doing the free Java course from the University of Helsinki (mooc.fi/en). What set it apart from the other courses is, that for each topic they are introducing, they have multiple, involved coding assignments and provide good automated feedback when your submitted solution doesn't work. Of course, the beginning was still difficult. But the assignments were all solveable and didn't take too much time (on average), so I had a positive feedback loop that kept me engaged. Ultimately, just by the sheer amount of assignments and them having appropriate difficulty levels, I managed to develop a good intuition about why some things work and other don't. And later on, they also include slightly bigger projects so you can put stuff into perspective. I do feel the problem with most online courses, that they often have very simple exercises (that can be easily copy-pasted) and overly long explanations. But the real way to learn programming is by doing it, not reading about it. Once you gained the underlying understanding, the theoretical concepts also become much easier to grasp.
- casablancatoast 4y agoReally appreciate this feedback gabelschlager, and I've seen mooc.fi a couple of times mentioned. From the other commentors suggestions, it seems that just trying (and doing) to build something would be beneficial.
- spenrose 4y agoThis series is excellent on crossing the chasm from interested to effective: https://lowlyswe.substack.com https://lowlyswe.substack.com . Code (not study, code) 50+ hours/week for a couple years.
- casablancatoast 4y agoThank you spenrose. I've bookmarked one of the articles and I'll read that later this evening. It looks interesting.
- mgomez 4y ago