Ask HN: What should every software engineer know?
I've just started working on a side project that teaches users to build software. The pain point I'm attempting to build a solution for is the programming isn't the same thing as developing software and that there is a huge gap between the two.
With that said, I'd like to compile a comprehensible list of things that ever good engineer should know. Here is what I have so far:
+ The ability to read code is possibly more important that the ability to write code.
+ Version control is a requirement, not an option.
+ Same goes for testing.
+ Writing good documentation is important.
+ Open source projects are a great way to learn and build a resume.
These are obviously very basic, but I want to extend the list. What is something you think every engineer should know?
16 comments
[ 3.3 ms ] story [ 52.7 ms ] threadYour app can fuck up a LOT of things, and maybe you'll lose users, or maybe you'll lose marketshare... but the one thing you shouldn't lose is user data.
Thanks!
Long and short of it, Github is screwing me over by not letting me get fewer permissions, and I won't release an app that takes more permissions than it needs. It's quite the quandary, really.
+ Over 20 Quality control innovations exist, use at least 1/2 of them.
[0]http://www.joelonsoftware.com/articles/fog0000000043.html
Edit: It is worth understanding "bugs removed per hour". Every quality control "innovation", has a bug removal rate and will improve the end product, or should do. The bug removal rate, is a calculation you can do. ... But I like to learn by doing, so the above exercises helped me understand.
Initially, it seems like the best approach would be to find a few well-run open source projects that would agree to mentor users in some fashion. The problem would be getting this approach to scale as the number of mentees will always be larger than the number of mentors.
If the date 2004 worries you, then download a draft of version 3 of SWEBOK here http://computer.centraldesktop.com/swebokv3review/ and click on SWEBOKV3_Ballot_public.pdf on the left sidebar of the page.
Actually, if you want to put together a plan for self study, then work through SWEBOK and Google for papers on the various sub topics covered. One thing about software engineering is that just about all research is published openly on the web particulary in CiteSeerX.