Live data from Hacker News

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

news.ycombinator.com

451–460 of 538 posts

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

#451
Tons of great stuff and I'll add what I can from 15 years as a full-timer preceded by 10 years as an amateur. I've in settings ranging from a startup I founded to a large insurance corporation. I'll just keep it to bullet points:

- Relationships are key to your career. Align with good people and maintain those relationships.

- The product is more important than the code.

- Keep up with the latest tech, but don't necessarily use it.

- When starting a new job, learn the business first. Understanding what the product does and why is crucial and doesn't take long to learn.

- Avoid an adversarial relationship with other departments like marketing and accounting. Work together with them (back to point 1).

- Share your wisdom, don't hoard it.

- When you are no longer curious, something is wrong.

- Writing code is simply that. Enjoy it, don't glamorize it, and try not to obsess over it.

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

#452
post #450

That you need a lot more than just coding skill to have a successful career in engineering.

Also, that you'll need to pretty much completely reinvent yourself every 5 years or so if you want to stay employable. (I.e., need to keep becoming expert in some new tech specialty.)

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

#453

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…

“A reminder that the goal of a given computer program is first of all to meet some business requirement may come across as a platitude. In practice, the excitement of technological challenges often slowly causes attention to drift from the end to the means…”

—Stephane Faroult, “The Art of SQL”

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

#454
post #116
post #107

Earlier quoted context omitted.

> Find someone smarter than you and learn from them. The corollary is if you're the smartest person in your area, you're more likely to stop learning. Maybe. I think the other side is find someone smarter than you, but less experienced , and teach them. You learn much more from teaching than being taught. If you're at loss of finding smart adults, find some children ; they're probably all smarter than you, in the sen…

> Find someone smarter than you and learn from them. The corollary is if you're the smartest person in your area, you're more likely to stop learning. The issue I have with this is finding that person.

There have been some posts on HN about hiring more experienced developers for one-on-one tutoring / pair coding over Skype (on freelance websites etc).

A guy wrote a blog post about it (can't remember name), he hired a couple people for a half hour each until he found one he liked.

Alternatively see if there are any meetups in your area (meetup.com is great for that).

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

#455
post #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 everyt…

Regarding 2, how do you suggest I avoid "spinning my wheels and learning nothing"? Over the last 6 months I've becoming increasingly aware of this problem with me, but I don't know how to fix it.

I imagine that there are things you know about that you don't fully understand or haven't put into practice yet. So focus on understanding them, and especially understanding them by doing them.

And if by some miracle you don't have enough of those things, spend more time on HN ;)

Edit: Getting a mentor can be tremendously helpful. If you work at a company see if there's anyone you can get paired with. Someone more experienced is great, but even someone at your level is likely to know some tricks you haven't learned yet.

Alternatively, ask a friend, go to meetups, or you can even hire people online to teach you how to code (on freelance sites etc).

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

#456
Sleep and high-intensity exercise are underrated as productivity tools.

Anger is best solved by not ruminating about it---the catharsis hypothesis is busted.

Read other people's source code of interest, closely.

Increase focus/limit distraction by limiting the work-in-process with Kanban-like systems.

Assembly language matters but abstractions can multiply the power of your systems. Conversely, too many layers of abstraction is a design-smell.

And soft-skills care not what programming language you speak.

Independently of work, learn a new language once a year.

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

#457

Find another profession. Unless you really love programming (I do). I am well compensated, but my contemporaries in other professions are better compensated - from two-fold to ten-fold.

What industries are they in, and what do they do?

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

#459
post #404

Earlier quoted context omitted.

We go through this once a decade. The problem is a fundamental byproduct of the disconnect between humans, to whom mathematics and logic are foreign concepts that take consistent work to internalize and apply, and machines, for whom ambiguity, context, and perspective are foreign concepts that take consistent work to "internalize" and apply. Call me a philistine, but I don't really believe we will ever get the natura…

The thing is there was enormous progress in natural language processing lately; it's now conceivable to enable some simpler forms of programming using your voice commands only (imagine webapp or mobile app builder controlled by voice) that would satisfy needs of 95% of population, putting many companies out of business. Even at top 5 companies there is a panic about it and many managers will tell you in private they…

The thing is that no matter how good NLP becomes, natural language is inherently fuzzy, just like humans are inherently fuzzy. Human languages do not provide the precision that a computer must have. It is possible that the computer can learn to guess correctly in some percentage of cases, perhaps even a very high percentage of cases, but it can never be more than a guess because that information is simply not expressed in conversational English (and I'm monolingual, but I assume it is pretty much the same in other human languages).

Perhaps we are moving to a day when all programming will occur verbally, and each programmer will be paired with an Echo which he verbally instructs as it writes a program. But we will still need a person who is assigned with converting natural language to machine language, including reading in the contexts and assumptions necessary to make assumptions that are almost always correct.

That's the part that I don't see how computers are ever going to be able to beat humans on. You can't squeeze blood from a stone, and if the data isn't there and isn't in any of the spied-on data collected by all the listening bugs all over the house and all the location bugs carried in a person's car and pocket and all the network bugs on the person's computer and ISP, and so forth, the computer won't have the data necessary to furnish the desired response.

Conversational language will not have the necessary precision without special effort being dedicated to expressing ideas in a logical, mathematically-valid way. The people who expend that special effort are called "programmers".

IMO the only hope of a programmerless future is one where the language has meshed to the point that every conversational statement is a valid program after the NLP's macros have been expanded or whatever, and the computers understand this with a 0% error rate. A world where a master programmer reprogrammed human language to be computer-native. I don't see us getting there.

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

#460
post #152

Shell scripting (which will lead into Unix internals). A lot of programming is automation and yak shaving, and shell is often the quickest tool to get past that. It lets you get to the meat of the problem you're actually solving. Using the same tool for build, test automation, deployment, sys admin, refactoring, etc. is valuable. Otherwise you are stuck with frothy and immature domain-specific tools that clutter your…

I agree, I knew how to "use" unix/linux many years ago, essentially knowing how to run things on a command line, but it's only in the last few years I've begun to really learn how to use it. For the last couple of years I've been focusing on doing more shell scripting and learning more of the unix tools available and I wish I'd invested the time a decade earlier because it's paid off more than anything else.

It goes from simple things like being able to copy/view production logs in seconds (instead of fumbling through the file system) to writing DSL's in awk.

I'd go as far as to say we'd be better off teaching kids how to write shell scripts than any of the current programming classes or the "mail merge with word" classes that they get taught today.

Post reply on HN