HN user

eddsh

27 karma
Posts0
Comments14
View on HN
No posts found.

Oh I 100% agree but as a junior engineer you're not going to be able to change that, if you can change it you probably won't change it for the better, and using HN comments to fuel debates over long-standing patterns will just cause resentment. These are totally valid opinions to have once you find them out for yourself, IMO.

If you're anything like me, given enough time you wonder if all the 'fluff' of OO is necessary as you seem to be writing code to satisfy the programming style rather than the domain problem. You'll then try FP and find it has its own pitfalls - especially around how complex the code can get if you have a load of smart Haskell engineers - and suddenly they have the same problems ('fluff'). Apparently at some point I'll have a similar move to Lisp and discover how complex the code base can be with multiple engineers (I'm 8 or 9 years into this engineering journey myself!).

My current goal with software is to write this as simply as possible that a junior developer with 6 months experience could read my code and know how to modify it.

Don't listen too closely to the issues people have with GoF and Design Patterns. Yes, they have their issues and an over-reliance is an issue. However as a junior engineer you should learn these things and come to this realization (or not) yourself! Also if your company does use these things, code standardization across the org is more important than the downfalls of overly complex patterns.

I read these arguments instead of focusing on learning patterns and it just caused grief until I decided to learn the patterns.

QA should be writing the underlying code along with the BDD-style tests, using something like a Page Object Model design, with BDD-wrappers on top mostly for non-technical analysts like PMs and BAs to understand coverage and add test cases. I think if you're doing it for anyone else's benefit it falls flat. If it's a no-code solution for QA then it becomes a drag and you should hire an SDET to manage it (and train the other staff to write the underlying code too). If BA/PM is not involved in test design it's a pointless wrapper, I agree. Personally I'm not a fan and spend my time focusing on better reporting so people can see what's tested & if they want an additional case I can just add it myself.

and the only thing you need to get a job is good whiteboard/leet coding skills

I have over 8 years experience and don't find this is the case. Maybe it is only for junior roles nowadays? Sure I've been leetcode'd in interviews (and sometimes failed!) but normally it's more conversation driven with a little project and/or code review.

I always assume someone who can build a small production web app from DB Schemas to the front end, including authentication and payments but nothing more specialist than that. Able to jump in anywhere along that stack and be dangerous enough. Probably abstracted via frameworks, so knowing one in-depth front-end and back-end.

Chat to your doctor about this, sounds like it may be ‘proper’ depression and they’ll be able to give you advice to tackle it. Maybe you aren’t but talking it through early and catching it early is best :)

A life lesson I learned was to ensure your personal life is as satisfying as your work life so when one tanks you have the other. Make sure your mental model of yourself is >than just ‘software developer’. Learning Japanese sounds healthy :)

On a productive note, if you want work look at Python. There’s tons of remote Python roles and it has some ML elements your maths knowledge will help with.

I recently started a degree with Open University in Engineering (a distance learning course that's fully accredited in the UK but works for me as I move around while my wife works as a Postdoc, currently in Palo Alto). The book I've found that covers me from math basics (basically GCSE, so high school Maths) through to the more advanced topics I know I will need is Engineering Mathematics by K. A. Stroud. I'd highly recommend it. It contains a good number of exercises (and all solutions), covers all the topics I need, and progresses at a good pace. You can see the contents here: https://www.bloomsbury.com/us/engineering-mathematics-978135...

Honestly I use bash for this. I keep a local repo of .deb/.tar.gz files and scp them onto a machine which makes them reproducible. I use uvt-kvm for VMs, config files to cover basic settings, and that's basically it. I run a fairly decent sized test lab with multiple servers that have to be reproducible, quick to edit, and install fairly complex toolchains.