Live data from Hacker News

Ask HN: How to transition from academic programming to software engineering?

news.ycombinator.com

101–105 of 105 posts

Re: Ask HN: How to transition from academic programming to software engineering?

#101
post #99
post #96

Earlier quoted context omitted.

Software development as practiced now by a huge number of individuals and companies is closer to a craft, but it can be and must be more than that if we want to be able to tackle the growing complexity of software and improve its overall barely adequate quality. Crafts don't scale and are a poor fit for highly complex domains. The curse of software development is its huge financial success, anemic legislative specifi…

"And finally, we do understand software engineering well enough to teach it properly." This is news to me. I would very much like a citation, please. Or do you mean applying formal proof verification to everything?

Engineering doesn't mean using formal methods or specific fancy proofs, it's a systematic, disciplined quantifiable approach to software. It's described in an ISO standard and the more approachable IEEE SWEBOK.

The above is neither widely known (I only found out about it after many years of doing professional programming), nor is it necessary in order to be successful in the profession and/or make a lot of money.

Commercial software development is mostly a wild west and we're calling that craftsmanship.

Re: Ask HN: How to transition from academic programming to software engineering?

#102
post #95
post #30

Earlier quoted context omitted.

I can vouch for Clean Coder. We watched them in our company. It's a small dev team so we took the time together. Afterwards we implemented a 4-line rule amongst other things. We don't always hold ourselves to it, sometimes 5-6 line functions make sense, but we strive toward 4. Sometimes it's as easy as breaking code out into a new function, but sometimes you just simply have to create a class for it. That way a lot o…

This honestly sounds extremely limiting. I do get why you'd want to make functions short in general but I think there's a tipping point where making the functions shorter actually increases overall complexity and 4 lines seems to be past that tipping point in my experience.

It's honestly not as limiting as you might think. Readability has definitely improved a ton since switching.

Of course we don't count every bracket or blank lines. Only the rows with any logic or assignment.

And yes, I agree, there are occasions where the complexity goes up. If there is a good argument for that, then we of course go with it.

But so far, almost everything anyone in our team has made, has been improved by rewriting it to something that works well in 4 lines, be it using polymorphism, object oriented, or functional.

Re: Ask HN: How to transition from academic programming to software engineering?

#103
post #76

Thanks everyone, the comments are much appreciated. Here's a list of books and other media resources recommended so far in the thread: Robert C. Martin, Clean code: https://www.amazon.com/Clean-Code-Handbook-Software-Craftsma... Vaughn Vernon, various: https://vaughnvernon.co/?page_id=168 Steve McConnell, Code Complete: https://www.amazon.com/Code-Complete-Practical-Handbook-Cons... 2 Clean coder: https://cleancoders…

I'd like to re-emphasise sanderjd's point not to focus too much on reading books. I myself went from doing a PhD and a lectureship in mathematics (with some coding here and there) to a decent software engineering job in a smallish company. I've learnt everything on the fly by reading code, searching stack overflow, trying stuff out and coding alongside others. The great thing coming out of a PhD is not just that you…

Yeah, I think of a PhD as a kind of intellectual adolescence. It led me to far greater intellectual independence.

Re: Ask HN: How to transition from academic programming to software engineering?

#104

I have hired some PhDs in your situation and worked with others, I personally just went to work after I got my BSEE. My observation is that you're halfway there when you realize that you need to improve, of the folks I saw who did poorly it was because they didn't realize that you could be both the smartest person in the room and the least capable at the same time. Right now, on your first job experience, even a kid…

I want to second about the "Code Complete" book. IMO, it provides a much more practical and hands on approach than most of the other books, and does this to a great depth. In my view, if I'd recommend only one book on good software engineering practice, it would probably be that one.

On a related note, I just this week stumbled upon a post / essay, which was probably the best piece of writing I've read in computer-aided engineering, and working in a disciplined manner. I'd recommend reading it right now, as the very first thing you do: https://queue.acm.org/detail.cfm?id=3197520

Re: Ask HN: How to transition from academic programming to software engineering?

#105
post #54

Earlier quoted context omitted.

This is pretty good advice overall. One small change I suggest is to take it easy on Design Patterns and the like. I’ve seen people in OPs position (general smarts but limited production experience) turn into architecture astronauts and start overengineering everything. It can be useful if you’re working on a legacy codebase and need to understand the jargon that can appear in [possibly overengineered] existing codeb…

I've written software over a decade and I loath the design patterns book. I would not give it to a beginner as it would corrupt their mind with useless drivel . It's authors exhibit themselves as morons who celebrate renaming existing computer science concepts while occasionally mixing and matching them. I would not be this uncharitable towards it if it was not such a famous (and hence harmfull) book. It's harmfull b…

Thanks for this post, I remember reading about "Flyweight" and being confused at the time, if it's just memoization that instantly makes sense and is just such a better way of describing things.
Post reply on HN