Comment by patch-n

Comment by patch-n 11 hours ago

1 reply

I started out as a business analyst and technical product manager at a startup before transitioning to software engineer job family there and in my 2 subsequent roles over the past 6 years. It sounds like your management is especially supportive of you making this transition internally, which is going to be very helpful.

I want to add a caveat that your manager and colleagues should be a resource for you when tackling projects at work, and not to hesitate to ask pragmatic questions about the project(s) you might pitch in on there. It's ok to not have all the fundamentals down, as long as you're working to be a net positive on the project(s).

I went through some of the books listed in the teach yourself CS resource. https://teachyourselfcs.com/

A subset of the resources listed there are probably the most pragmatic for the topics you asked, but you might discover that you're interested in other areas of CS as you slowly work through them. I think it's ok to nibble away at exercises while juggling your family and work obligations.

* Structure and Interpretation of Computer Programs - SICP. If the book doesn't necessarily click right away, doing a subset of the Scheme exercises are still worthwhile.

* Computer Systems: A Programmer's Perspective - CS:APP. Incredibly helpful knowledge about low-level programming.

* Computer Networking: A Top-Down Approach - You mentioned having a home lab, and more networking understanding will help contextualize some of your work.

suid 10 hours ago

I think the hardest thing about books like SICP, or the Knuth texts, for "casual hobby programmers" is the need to tear themselves away from thinking in the idioms of popular languages like Python, Javascript or (back in the day) VB.

It's almost like having a Zen master trying to teach you the principles of Zen using a special artificial language with simple but precise semantics, that you have to learn first (and understand thoroughly), rather than try to learn it in a conversational language.

It's a difficult task, but ultimately rewarding. However, it is a struggle to turn your mind away from Javascript when looking at an algorithm or a data structure being taught by one of these texts, and use the simpler semantics of Scheme or "literate programming".