Live data from Hacker News

Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

news.ycombinator.com

201–210 of 275 posts

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#201
post #22

I'd argue differently. Congrats for having the courage to recognize your problem. The analogy that comes to mind is I've been playing basketball in my local town, and now I've gotten promoted to play in the big city. I now feel like a small fish in a big pond. If you enjoy software engineering, I'd say, double down. Now that you're at the medium software company, seek mentorship and coaching from others. In addition,…

>So some tactical thoughts of possible advice: 1. Face the issues head on -> take all the negative feedback on the code and rework the medium complexity task 2. Learn to unlearn bad habits. Yes, it's harder, but it comes with practice. 3. Commit to maybe taking a course work online (maybe seek advice from others on what are good ones to address weaknesses you have)

I'd also add to this: learn the why as well as the what. There are reasons why hardcoded values shouldn't be used, why OP's structure was bad, and so on. Learning why will help build those habits and make them stick.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#203

Earlier quoted context omitted.

Well, actually... it could be a good practice, if the values are used in multiple places.

What next? `ZERO = 0`, `ONE = 1`, ...?

I had a coworker do this all over a Cold Fusion codebase.

He also claimed he used to be a dentist in Mexico, so anywhere he had his name, email sigs, code comments, etc., he would sign add "DDS" after his name.

Dude was a trip.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#204
I know people like you. One's a great product designer, technical enough to understand literally at a glance what needs to be done to solve the user's problem, but there was a great skill gap when it came to his actual code. I still have HUGE respect for his work.

Don't sweat it. You're only "bad" because you haven't exercised the proper skills. If you want to keep coding, skill up! Maybe take a course online that will show you the proper techniques for working in e.g. JavaScript. Learn the design patterns that will give your program the "proper structure". Then start looking for jobs in the field. You've been at it long enough to have an advantage over more junior peers with more experience coding "the right way". At the senior level, soft skills start tending to dominate technical acumen. Play that card to your advantage.

If you hate coding, maybe the softer aspects -- PM, PO in an Agile shop, Scrum master, UI/UX design -- are right for you.

It's up to you though. It's not too late to build your skill on the coding side of things.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#205

Earlier quoted context omitted.

Thanks for the clarification. I guess the tools you had available at that time would affect the severity of this. Nowadays, with the ability to refactor a macro name in a few seconds, I wouldn't necessarily agree that a developer that used a silly name would "never make it to a senior developer". Fuck, I'm "senior" and I definitely use worse variable names on a regular basis.

I think I disagree strongly on the first point. If SEVENTEEN is used instead of MENU_SCALING_FACTOR and ARBITRARY_OTHER_THING (two semantically different things both happening to be 17), no refactoring tool (that I’m aware of) is going to be able to tease apart just the former use and amend it to 23, leaving ARBITRARY_OTHER_THING as 17. const int declarationAdoptedYear = SEVENTEEN * HUNDRED + THIRTY_EIGHT * TWO;

I use QtCreator and it would be able to do this.

If I had

#define SEVENTEEN 17

and another macro

#define OTHER_THING 17

I could simply refactor SEVENTEEN to

#define MY_NEW_NAME 17

which would change all occurrences of SEVENTEEN to MY_NEW_NAME, and then I would just change the value of that macro.

#define MY_NEW_NAME 23

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#206

Earlier quoted context omitted.

I think I disagree strongly on the first point. If SEVENTEEN is used instead of MENU_SCALING_FACTOR and ARBITRARY_OTHER_THING (two semantically different things both happening to be 17), no refactoring tool (that I’m aware of) is going to be able to tease apart just the former use and amend it to 23, leaving ARBITRARY_OTHER_THING as 17. const int declarationAdoptedYear = SEVENTEEN * HUNDRED + THIRTY_EIGHT * TWO;

I use QtCreator and it would be able to do this. If I had #define SEVENTEEN 17 and another macro #define OTHER_THING 17 I could simply refactor SEVENTEEN to #define MY_NEW_NAME 17 which would change all occurrences of SEVENTEEN to MY_NEW_NAME, and then I would just change the value of that macro. #define MY_NEW_NAME 23

But the devs who would define SEVENTEEN to be 17 are unlikely to define OTHER_THING at all, since there’s a “perfectly good” macro that evaluates to 17 and avoids hard-coded numbers already. (They might even cite DRY: Don't Repeat Yourself as a misapplied best-practices shibboleth.)

See the (contrived) Declaration of Independence line above. Your editor would dutifully change the date to be off by six hundred years.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#207
I am 58 yo computer dinosaur soon to be extinct and I feel confident to give some advice before it happens.

The rules of structured and systematic programming are not difficult to learn and acquire. So the question for me is do you like what you are doing? If so, you could arrange with your employer to have some time out for qualification measures. Or you could do the same between jobs. It could be an online course specialized to your field or one more general. Also you could just study for yourself. For continued success in the computer field there is no other approach than 'life long learning' nobody can know everything. I am self-employed and I regularly take qualification time off where I extend and refresh my knowledge in the field. It is never a mistake to acknowledge our limitations, it is a mistake to give up something we like just because we feel we could be better. Nobody stops you to become as good and as competitive as you want.

All the best!

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#208

Earlier quoted context omitted.

You could use refactoring tools in your IDE to rename all usages of HTTP to HTTPS.

Which will break other code where someone wrote: // Ensure all outgoing URLs are https: URL = URL.Replace(HTTP, HTTPS);

Technically it would still work though?

  Replace(HTTPS, HTTPS)

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#209

Earlier quoted context omitted.

I use QtCreator and it would be able to do this. If I had #define SEVENTEEN 17 and another macro #define OTHER_THING 17 I could simply refactor SEVENTEEN to #define MY_NEW_NAME 17 which would change all occurrences of SEVENTEEN to MY_NEW_NAME, and then I would just change the value of that macro. #define MY_NEW_NAME 23

But the devs who would define SEVENTEEN to be 17 are unlikely to define OTHER_THING at all, since there’s a “perfectly good” macro that evaluates to 17 and avoids hard-coded numbers already. (They might even cite DRY: Don't Repeat Yourself as a misapplied best-practices shibboleth.) See the (contrived) Declaration of Independence line above. Your editor would dutifully change the date to be off by six hundred years.

Sure, I understand what you mean. To be honest, that sounds like a different issue, one that would arise after additional circumstances took place.

I still stand by my initial comment, that if you had the quick ability to refactor SEVENTEEN at the time this developer committed this, it wouldn't be a very big deal, and this developer could be told that good variable names are important and he wouldn't be stuck as a junior developer forever, lol.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#210
I completely understand how you feel. I started off programming for only a handful of years before realizing that the most differentiated thing I could do was communicate with multiple groups in language they care about, talk confidently about complex subjects, and find business value in neat technology for my company.

Are you interested in being a PM? You for sure do not need to code to be a PM. It can help, but what you do need to do is communicate a lot and figure out how to make the company money. There is usually not an obvious answer as to what a PM does day to day and I have experienced organizations that have extremely differing ways of using them. I find it engaging and exciting, but I also get to be a human punching bag for when things go wrong. Takes a lot of person management and self management to do. For sure not for the thin skinned or introverted.

Post reply on HN