Live data from Hacker News

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

news.ycombinator.com

311–320 of 538 posts

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

#311

Earlier quoted context omitted.

> Work somewhere where software is the main product and not just a cost center. This is THE big difference between S/W dev and IT. For 20 years I worked in the former, and for the past 10 in the latter. No question about it: IT is hell. Theirs is a never-ending mission to reduce the cost of moving data and being "compliant" with often-meaningless ever-excessive corporate standards (and forever meaningless MBA/CIO fad…

Having regrettably started from the IT side, it's seemingly impossible to make the jump to a software company proper. Nothing I do day-to-day is flexing any mental muscles an interviewer would find sexy. We're like a permanent underclass of undesirables. Without spending time outside work to focus on sharpening basic undergraduate CS knowledge, I know I'm getting objectively rusty at the types of problems I actually…

I sympathize. Early in my career I landed a job in a small software company. My skills improved greatly. Then I made the mistake of taking an IT job. That IT job rolled into another and another. While I stay near the technical top in my IT departments, I find it tough interviewing for software company jobs. The concerns of a software engineer in a software company are just so different from an IT developer’s.

I interview for backend engineer jobs. I notice a common theme in the interviews: efficiency. They are very concerned with transactional throughput. They optimize everything from the services layer to the database for trimming every microsecond. At a past interview, the people wanted me to talk about the efficiency and implementation of various data structures: nothing exotic, just garden variety queues, stacks, lists, and hashmaps. They quizzed me on threading issues. One guy got into various indexes in a relational database and then jumped into TCP vs. UDP questions. In my most recent interview, the guy started by asking me the difference between optimistic and pessimistic locking. In my IT job, I never deal with locking issues: they are all abstracted away. Two-thirds of the way through the interview, I remembered and circled back to the question. However, the damage was more than likely done. A person who deals with those issues daily would never forget. But, I know what to work on for the next interview.

I understand your predicament. It’s deadening on every level when you’re doing work beneath your capability and interest, but you don’t have the necessary knowledge to get through an interview for more interesting jobs. Hopefully, the observation I made above helps you to target particular areas to successfully navigate an interview.

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

#312
post #262

Everyone's code basically sucks, including yours. The boundary between a beginner and a coding rockstar really isn't very great unless you are getting into the realm of computer sciences, like machine learning. Learn from your seemingly smarter peers, but don't idolize them. Chances are they will leave the company long before you do, and you will figure out that their coding skills aren't all they are cracked up to b…

Totally agree on the personality and grooming points you made. You need to be good at making people know exactly what you have achieved. Shout about it on slack, fire up google docs and write some brief documentation on a new feature you implemented. Others within the company won't be actively looking at your contributions. They will notice who stands out, who is taking initiative and touching base regularly. Unfortu…

Also, ask for the new, interesting work, make designs, talk to others about your ideas - don't just show up with a complex multi week/month solution.

I've never understood why more people don't ask for the interesting, fun, challenging stuff. I've always done that, and been glad I did.

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

#313
post #195

Earlier quoted context omitted.

By retire early, do you mean retire like Mr. Money Mustache suggests, -- i.e., extremely low cost of living, don't use AC, don't drive anywhere, probably live on less than 20K a year? Or are you making a large enough salary in the PNW/San Jose or something where you can put back 1-3 mil in 10 years? I ran that calculator and while it says I can retire soon, I've always heard 25x income to be a much more reliable numb…

No I'm not a lean FIRE guy like MMM more of a FatFIRE https://www.reddit.com/r/fatFIRE/ Our family spends like a drunken sailor on shore leave. I'm lucky to come from a dual income family and save 100% of my salary. I'm targeting saving 25x yearly spending.

Thanks -- haven't heard that term before. I'll check it out. I like the idea of early FI but I'd like more a cushion that I think some of the lean guys are going for.

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

#314
post #56

There is no future in software development as a job. Move to a management position quickly, network, make friends with decision makers, don't spend too much time on crafting your skills, your reward for perfection will be more insane work and crazy interviews where one part not 100% done kicks you out. Work on your appearance, kiss up, lift, dress properly, use anti-aging cosmetics, make cool looking hairstyle, wear…

[deleted]

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

#315

Everyone's code basically sucks, including yours. The boundary between a beginner and a coding rockstar really isn't very great unless you are getting into the realm of computer sciences, like machine learning. Learn from your seemingly smarter peers, but don't idolize them. Chances are they will leave the company long before you do, and you will figure out that their coding skills aren't all they are cracked up to b…

> Everyone's code basically sucks, including yours.

Which is why I'd say, unit-test your code, or TDD, or something. When you look at that crap months later, your mental model of how it all works has completely eroded, and only the test suite is left to preserve your expectations as they existed back then, preventing you from wasting a lot of time stepping on your own toes while you re-grok the big picture, if you have to make a change.

> The boundary between a beginner and a coding rockstar really isn't very great unless you are getting into the realm of computer sciences, like machine learning.

I don't agree with this. I didn't spend 20 years learning nothing, as it were.

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

#317
Learn how to evaluate trade-offs. Not everything is black and white. Given two alternatives, both of which have advantages and flaws, learn how to decide which one is better (and why).

Learn a sense of... I want to say "taste", but it's more concrete than that. Learn what the bad ideas are, and why they're bad. Learn a sense of "that doesn't feel right" that's technical, not just aesthetic.

Learn what it's like to maintain a two-decade-old code base of a million lines or more. See what the problems are. Think about what you're doing when writing new code that's going to create some of those problems.

Learn to document what you're doing to an appropriate level of detail. Take the time to do so.

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

#318
After about 26 years programming -- that is, since i was a little kid, this is what i wish i would knew, not only 4 years in, but also on my 1st year at doing actual paid work:

-1. That I should have jumped in straight into Lisp from day one.

0. That popular technology does not mean that said stuff is the best, great, good, or even acceptable. Example: PHP 4.

1. That the industry raves about a seriously, seriously crippled and flawed language (Java)

2. That "Design Patterns" are mostly workarounds for the problems introduced by flawed languages (again, Java and friends); not great ideas to be proselytized.

3. That Object-Oriented-Programming is not only done in the way of C++ or Java, but that there are much superior ways to do OOP. (i.e. Smalltalk, CLOS)

4. That if you want to solve complex problems in a productive way, you need a multi-paradigm language. Strict-OOP languages or Strictly-Functional languages will limit you, unless the problem is really suited to it.

5. That the "Blub paradox" is real. Programming languages are not equal.

6. Real world (i.e. commercial, production) software should always be done by experienced people, not by juniors.

7. A seasoned (say, 8+ experience) programmer can done things 8 times as fast as a junior (graduate) programmer. I've seen this firsthand.

8. Dilbert -as others have pointed out- is a documentary. 8.1 Corollary: Pointy-haired bosses are real.

9. The customers will always think everything has been done using Excel Macros.

10. The salesmen are very important to the health of the company, so don't make fun of them; rather, make friends with them and help them get aligned to what the technical team is able to do.

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

#319
By the sheer number of responses here, this is a testament to how personal each coder's experience is and how much they value it unto itself. Coders care about the work they do and especially in the beginning find their choices to equate to who they are, tending to find unwanted changes or revisions to their code by others' hands as annoying or encroaching upon their precious domain, at least for me.

To this day, I still get very annoyed when someone takes what I have done, completely reworks it or even throws it away, doing something else that IMO is more complex and difficult to work with. My values have shifted from doing the quick and custom style to moving more toward standards and TDD in a style that everyone can pickup easily and understand.

This has made my work so much more productive in getting to the final production quality by a factor of not less than 2. In my youth, I spent 99% of my time fixing code as it broke. Now, I unit test and in many cases, end-to-end test with TDD frameworks providing myself with a much higher probability of success when pushing to production.

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

#320
post #227
post #137

Earlier quoted context omitted.

> something profitable Would that be the primary product of your company, or something that empowers other employees to work faster, and push _their_ products more easily?

Personal preference. In my situation, it's a retail product at a company that has a lot of other retail products. The one I work on just happens to be very profitable, so it gets a lot of attention. But I'd be very happy working on the empowering problem you mentioned too. I've been blessed by having experience in several, very different kinds of applications (web apps to avionics). Over time, I've realized the speci…

> I'm looking for something that's sufficiently technically challenging, where I can be surrounded by honest, friendly people, and make decent money.

This is very close to my real goal as well - but CRUD apps seem like the norm lately :(

Post reply on HN