Live data from Hacker News

Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

news.ycombinator.com

31–40 of 538 posts

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#31
I wish I had learned to keep my head down and code without the expectation to release. Because nothing I released in the first 4 years of programming professionally was good, at least not by my standards today. Try telling me that 6 years ago.

I was dead set on building entire products, it's why I loved programming. It was why I love lego. But in hindsight it would have been a better use of my time to work on smaller projects and ideas. As almost nothing ever got finished before I was working on something new. I have very little in terms of a tangible outcome from that time period, and it extended beyond those first 4 years.

Now I wouldn't want to work on a full product before I knew I had all the larger parts finished first. I wouldn't want to work on those larger parts before I knew I had the smaller parts those larger parts depend on first.

Programming with this mindset has provided me not only with endless work to do. But less stressful, more satisfying, easily digestible work with semi regular tangible outcomes.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#35

That shipping stable software that works and meets requirements is what people really want. In other words, what the non-tech business people want, or your customers want, is software that fixes their problems, makes their lives easier or makes them more money. It's easy for us programmers to become fixated on using a newer JS framework, a slightly tighter Java loop or the latest cool language. Took me a few years to…

This. Make your _business_ case, not a technical case. This applies to software engineering, security engineering, etc. The above comment does not absolve you from doing cool things, it's just that the cool things should align with business interests. No yak shaving. Sometimes writing a one-off script will take 30 minutes, and doing it by hand will take 10. Do it by hand.

This! and know why you are building what you are building.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#36
If I could go back in time and give myself advice it would be:

0) Nothing is too hard to do, no matter how much those doing it might seem like towering titans many levels above you, or how out of your reach it may seem. Nothing is too hard, there are only things that take time, and things that take more time. If you put in the work, those titans will be your peers before you realise it. Of course, you can't do everything. If you want to put in the amount of work needed for some things, you need to focus. That means deciding to not do some things that you want to do.

1) No-one who is serious about programming gives a shit about language wars, they're for fanboys and spectators. People who get shit done are too busy to spend time on that. So don't sweat what language you choose (too much – there is still such a thing as the right/wrong tool for the job) and especially don't worry about the people insulting it.

2) If it's not constructive practice, you're wasting your time. I spent too much time - literally years - spinning my wheels, writing code but not getting any better at it. Make sure you're reflecting, make sure you're improving.

3) (related to #1) seriously stop worrying about choices and just get something done. You don't get things completed by worrying if you're using the right language/framework/library.

Unfortunately I worry that this advice would send me down another bad path and I'd probably need to add on something like:

4) All that said, some languages really are limiting, either in what you can do, the level of concepts you will learn, or straight up teaching you bad habits. Likewise some libraries / tools / frameworks are actually bad. While you should definitely avoid trying to optimise the last % of productivity, you should spend some time to make sure you're not using something highly suboptimal. If after reflection you believe you are using such a language/framework/etc, then broaden your horizons. That doesn't necessarily mean rewriting your current project, maybe do a toy project or some exercises in something else.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#37
You don't have to design the whole thing before you implement. This applies more easily to smaller teams but there's a continuum between rapid dev and thinking everything out.

In my game dev it took me a long time to let go of "but I need to create an elegant/clever solution that covers all my planned features rather than just what I'm implementing now". What that got me was a lot of unfinished projects with elegant solutions. When you have time to code, code. Not necessarily the first solution that comes to mind, but maybe the second. Now you can keep coding instead of being stuck. Let your mind percolate on the solution in the background while you code, and while you're doing other things later. It's amazing how many times the solution will present itself after you implement a couple different pieces that now need to tie together. Use the power of your brain's pattern recognition.

Yes, you will "lose" some time in refactoring, but the truth is every project I've worked on, one-man hobby up to multibusiness teams, has had refactoring due to scope creep or "we didn't realize this would be an issue until we implemented it."

It will take time to learn how much thinking vs coding to do (both extremes are bad).

Final bit of advice: don't listen to the opinions of people as to what is a good or bad language. Try them out, use the right tool for the job.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#38
* Develop a good eye for hype and real trends. Try to follow the real trends and avoid the hype-fests. Avoid investing time learning fly-by-night technologies, but when something new and genuinely better comes along, jump on it.

* Listen to developers who have deep and abiding hatred for some technology that they can argue coherently (with a range of deep technical details, links to bug trackers, etc.). These rants are a gold mine can save you a universe of pain.

* Almost all good coding boils down to three things - choosing a less powerful language/approach, writing less code to do the same thing and looser coupling.

* All things being equal, take the job with the higher pay. It almost always means you're treated better in other ways, you work with better people, you work with better tech and on better code.

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#39
Except for using what you know, and that tech doesn't really matter.

I would add that you shouldn't be afraid to use new tools is they get you to the end faster. Common case for me: I use c# for almost everything, but nodejs wrapped in an API for crawling

Re: Ask HN: For those programming 10+ years, what do you wish you knew 4 years in?

#40
post #27

I wish I had taken the time to understand LISP earlier.

Why?

I was going to say the same thing. Why? For me at least, Lisp is by far the most enjoyable language to program in. Decades of my life spent fighting with class heirarchies and long compile times were all just in vain!
Post reply on HN