• Welcome to the Internet Infidels Discussion Board.

How to sharpen your tools as a senior software developer?

rousseau

Contributor
Joined
Jun 23, 2010
Messages
13,762
Bit of a slow day at work so thought I'd throw this one out there for the amusement of our developers, and to get some ideas.

To try to keep it concise, these things are true of my career right now:
  • I'm comfortable transitioning between languages, frameworks, and business domains
  • I'm up to date on all modern, popular technologies
  • I'm pretty good in the business / communication side of the field
  • I don't have the time or desire to code extensively in my spare time, but may tinker a bit
  • My current job isn't conducive to building architectural skills

And yet given the above I feel like there's got to be something worthwhile out there for me to sink my teeth into. The more I read up on the field these days the more I feel like I'm hearing the same arguments and advice being re-hashed ad-nauseum.

So - once you get pretty good at it, how do you get better?
 
Pick something you don't know how to write. Figure out how to write it.
 
Pick something you don't know how to write. Figure out how to write it.

That's where the - don't have the desire to code extensively in my spare time - point comes in. I wrote a bit of React a few months ago to get familiar with it, but save actually starting a small business it just doesn't feel like I'll get enough value out of serious coding in my spare time.

I'm considering casually reading a few projects in technologies I'm not that familiar with - gets me a bit of novelty without the headache of banging my head against a wall for months.
 
Seriously? It all depends what you mean by developer.

Read Knuth's book Semi Numerical Algorithms. That will keep you busy. The bible of algorithms not mathematical. Also Sorting And Searching. Read books and code problems worked for me. One of the CS school projects has always been writing a text editor or word processor. I did not need to do those kinds of things, but that is the kind of thing I did to improve skill.
 
Pick something you don't know how to write. Figure out how to write it.

That's where the - don't have the desire to code extensively in my spare time - point comes in. I wrote a bit of React a few months ago to get familiar with it, but save actually starting a small business it just doesn't feel like I'll get enough value out of serious coding in my spare time.

I'm considering casually reading a few projects in technologies I'm not that familiar with - gets me a bit of novelty without the headache of banging my head against a wall for months.

That attitude is mutually exclusive with developing skill. If not you will stay at the level of relatively simple coding.


There is one method, osmosis. Put a book under your pillow and sleep on it.
 
Pick something you don't know how to write. Figure out how to write it.

That's where the - don't have the desire to code extensively in my spare time - point comes in. I wrote a bit of React a few months ago to get familiar with it, but save actually starting a small business it just doesn't feel like I'll get enough value out of serious coding in my spare time.

I'm considering casually reading a few projects in technologies I'm not that familiar with - gets me a bit of novelty without the headache of banging my head against a wall for months.

Who said "extensively"? "something you don't know how to write" doesn't have to involve months of work. It can be that little thingy where a brute force iterative solution can be coded and tested on toy data in 10 minutes but runs for hours or days on realistic data sets, that requires you to think out of the box (and maybe look up some math) for a clever solution that can still be coded in half an hour and finishes in minutes or seconds.
 
Pick something you don't know how to write. Figure out how to write it.

That's where the - don't have the desire to code extensively in my spare time - point comes in. I wrote a bit of React a few months ago to get familiar with it, but save actually starting a small business it just doesn't feel like I'll get enough value out of serious coding in my spare time.

I'm considering casually reading a few projects in technologies I'm not that familiar with - gets me a bit of novelty without the headache of banging my head against a wall for months.

That attitude is mutually exclusive with developing skill. If not you will stay at the level of relatively simple coding.

There is one method, osmosis. Put a book under your pillow and sleep on it.

That's the thing. I've already done a couple years of systems programming. I'm confident that if I pick out any app idea I can figure it out, just not without spending too much of my free time to do it, which I don't want to do.

Some odd-ball tasks can be helpful, like familiarizing myself with some minor skills, just no desire to build a full blown Laravel, Rails, Mobile app etc.

Pick something you don't know how to write. Figure out how to write it.

That's where the - don't have the desire to code extensively in my spare time - point comes in. I wrote a bit of React a few months ago to get familiar with it, but save actually starting a small business it just doesn't feel like I'll get enough value out of serious coding in my spare time.

I'm considering casually reading a few projects in technologies I'm not that familiar with - gets me a bit of novelty without the headache of banging my head against a wall for months.

Who said "extensively"? "something you don't know how to write" doesn't have to involve months of work. It can be that little thingy where a brute force iterative solution can be coded and tested on toy data in 10 minutes but runs for hours or days on realistic data sets, that requires you to think out of the box (and maybe look up some math) for a clever solution that can still be coded in half an hour and finishes in minutes or seconds.

I guess it depends on what you have in mind. I'm pretty confident in my ability to build things from scratch, which is why I believe just up and building an arbitrary app might have diminishing returns. I spent three years in college building smallish to medium sized apps, and two years at 3M building a prototype from the ground up.

If I were to do something like build a full-blown PHP or Rails app that would provide a notch in the belt because it'd tack those skills onto the resume - the hard part is getting the motivation to actually do it.
 
Bit of a slow day at work so thought I'd throw this one out there for the amusement of our developers, and to get some ideas.

To try to keep it concise, these things are true of my career right now:
  • I'm comfortable transitioning between languages, frameworks, and business domains
  • I'm up to date on all modern, popular technologies
  • I'm pretty good in the business / communication side of the field
  • I don't have the time or desire to code extensively in my spare time, but may tinker a bit
  • My current job isn't conducive to building architectural skills

And yet given the above I feel like there's got to be something worthwhile out there for me to sink my teeth into. The more I read up on the field these days the more I feel like I'm hearing the same arguments and advice being re-hashed ad-nauseum.

So - once you get pretty good at it, how do you get better?

I feel much the same way, especially with regard to not having the time or desire to code extensively in my spare time. For me the key seems to be that if you don't want your skills to stagnate, don't let your career stagnate. If you are not getting to branch out into new technologies to freshen up your skills on your current project, and feel you are getting left behind, then ask to be switched to another project. If your employer is unwilling, or unable to allow you to switch projects, or there or no other projects where you work that are engaging with new technologies, then it might be time to look for a new job that will allow you to do so.

Switching jobs may also allow you the opportunity to improve your salary, so long as you have not hit the ceiling for Sr. Devs in your area. In general, I start looking for a new job after about 3 to 5 years in one place. I am 4 years into my current gig, and it is a great shop with a good number of teams working with different technologies. I have worked on at least 5 different projects since I have been here, and with most of those project changes a change of the tech stack came along with it. As a result, I have kept improving and expanding my skill set as a developer. Even at that, however, I am starting to get that 5 year itch. I know I haven't hit the salary ceiling for the area yet, but my salary is stagnating in my current position. I can jump ship and probably get a 20%-30% bump, or I can stick around until next spring and maybe get another 3%-4%, if I'm lucky. I just have to make sure that wherever I go they value embracing new technology as much as they do here.
 
Bit of a slow day at work so thought I'd throw this one out there for the amusement of our developers, and to get some ideas.

To try to keep it concise, these things are true of my career right now:
  • I'm comfortable transitioning between languages, frameworks, and business domains
  • I'm up to date on all modern, popular technologies
  • I'm pretty good in the business / communication side of the field
  • I don't have the time or desire to code extensively in my spare time, but may tinker a bit
  • My current job isn't conducive to building architectural skills

And yet given the above I feel like there's got to be something worthwhile out there for me to sink my teeth into. The more I read up on the field these days the more I feel like I'm hearing the same arguments and advice being re-hashed ad-nauseum.

So - once you get pretty good at it, how do you get better?

I feel much the same way, especially with regard to not having the time or desire to code extensively in my spare time. For me the key seems to be that if you don't want your skills to stagnate, don't let your career stagnate. If you are not getting to branch out into new technologies to freshen up your skills on your current project, and feel you are getting left behind, then ask to be switched to another project. If your employer is unwilling, or unable to allow you to switch projects, or there or no other projects where you work that are engaging with new technologies, then it might be time to look for a new job that will allow you to do so.

Switching jobs may also allow you the opportunity to improve your salary, so long as you have not hit the ceiling for Sr. Devs in your area. In general, I start looking for a new job after about 3 to 5 years in one place. I am 4 years into my current gig, and it is a great shop with a good number of teams working with different technologies. I have worked on at least 5 different projects since I have been here, and with most of those project changes a change of the tech stack came along with it. As a result, I have kept improving and expanding my skill set as a developer. Even at that, however, I am starting to get that 5 year itch. I know I haven't hit the salary ceiling for the area yet, but my salary is stagnating in my current position. I can jump ship and probably get a 20%-30% bump, or I can stick around until next spring and maybe get another 3%-4%, if I'm lucky. I just have to make sure that wherever I go they value embracing new technology as much as they do here.

You actually hit the issue I'm having on the head.

In theory, I'd like to follow the move around advice, but not only have I hit the ceiling for senior devs in my area, but I'm also now a part of one of the strongest defined benefit pensions in the world. Every year I accrue makes me significantly wealthier, while I work in a job with minimal stress, great management, and a culture I enjoy. Meet golden handcuffs.

Going into the role I knew the tech here was a bit outdated and that I'd have to keep up on the side or my skills would fall behind, but it was a trade off I took knowing the above advantages of the job. Now I'm three years in, and at best I get to work on something that's moderately challenging and interesting, although usually outdated, and at worst something that's tedious but needs doing.

It actually feels like a bit of a rut. I'm somewhat bored, but also aware that the grass isn't always greener on the other side. I could jump ship but end up worse off financially, and have the stress meter fall too far on the other side.

Oh and I forgot the other big thing - I also work a few minute walk from my alma mater, where I have alumni access to one of the biggest academic libraries in Canada. So the job has a lot of perks going for it - unfortunately the tech is certainly not one of them. Even my manager has joked about it a few times.
 
That attitude is mutually exclusive with developing skill. If not you will stay at the level of relatively simple coding.

There is one method, osmosis. Put a book under your pillow and sleep on it.

That's the thing. I've already done a couple years of systems programming. I'm confident that if I pick out any app idea I can figure it out, just not without spending too much of my free time to do it, which I don't want to do.

Some odd-ball tasks can be helpful, like familiarizing myself with some minor skills, just no desire to build a full blown Laravel, Rails, Mobile app etc.

Pick something you don't know how to write. Figure out how to write it.

That's where the - don't have the desire to code extensively in my spare time - point comes in. I wrote a bit of React a few months ago to get familiar with it, but save actually starting a small business it just doesn't feel like I'll get enough value out of serious coding in my spare time.

I'm considering casually reading a few projects in technologies I'm not that familiar with - gets me a bit of novelty without the headache of banging my head against a wall for months.

Who said "extensively"? "something you don't know how to write" doesn't have to involve months of work. It can be that little thingy where a brute force iterative solution can be coded and tested on toy data in 10 minutes but runs for hours or days on realistic data sets, that requires you to think out of the box (and maybe look up some math) for a clever solution that can still be coded in half an hour and finishes in minutes or seconds.

I guess it depends on what you have in mind. I'm pretty confident in my ability to build things from scratch, which is why I believe just up and building an arbitrary app might have diminishing returns. I spent three years in college building smallish to medium sized apps, and two years at 3M building a prototype from the ground up.

If I were to do something like build a full-blown PHP or Rails app that would provide a notch in the belt because it'd tack those skills onto the resume - the hard part is getting the motivation to actually do it.

I learned a long time ago people are motivated or they are not. You asked for advice and got it. Now you are saying you do not really need better skills.

You have a history of threads asking for advice. Several on investing. Why not pick up a book?

Maybe you are just looking for self reinforcement. Nothing wrong with that unless it is chronic.

For me technology was often hard work and frustrating. What gives me satisfaction was completing something useful, and jus as importantly the people I got to work with.

I feel sorry for those who never experience that.

I have not played a video game since the early 80s. I'd rather read a book or work problems.

When I worked at Intel in the 80s there was a name for some engineers, retiring in place. They get senior pay grade and are competent in an area and that is it for them. They get married, have kids and have no interest in it outside of work. It all depends on what you want.

It is all about choices. I intentionally made the effort to build a foundation in physic and different areas. Thermodynamics, fluid mechanics and so on.

It served me well. For 30 years I had a series of interesting challenging projects from optics to computer systems. and worked with many good people. I could not have just stood still. Sitting around talking science and engineering was always a pleasure.

Learning something new is the best entertainment. The money was important for sure. More important was the work itself and the people, that is what got me out of bed in the morning.

As a materials engineer I worked with put it, 'You mean they pay me to do this stuff?'. People who et intrinsic satisfaction form work be it an engineer or a carpenter.

If it is just a job to make money that is ok. It is all about choices.
 
You have a history of threads asking for advice. Several on investing. Why not pick up a book?

Maybe you are just looking for self reinforcement. Nothing wrong with that unless it is chronic.

It was a slow afternoon at work. Advice threads I make aren't just for me, they help people with interest in the thread, too.

And this place could use some novel conversations.
 
So first off I'll say good on you for where you are. I think I remember some of your earlier posts when you were starting your career and it seems like things have gotten traction.

The question I have is what exactly are you trying to hone? Do you want to remove rust? Is it ennui?

As a programmer, not a developer in quite a while, one thing I could recommend is a dig into some primitive stuff like building computational circuits using 7400 series logic or low level OpenGL. Since I'm not doing it professionally I've found FPGA boards (Spartan 6/7, Zynq) a decent outlet for what bits of free time I get to keep the passion for learning. Of course that's assuming you're completely up to date on whatever skill set you need in your job (languages, frameworks, platforms, compliance & legislation, etc)
 
So first off I'll say good on you for where you are. I think I remember some of your earlier posts when you were starting your career and it seems like things have gotten traction.

The question I have is what exactly are you trying to hone? Do you want to remove rust? Is it ennui?

As a programmer, not a developer in quite a while, one thing I could recommend is a dig into some primitive stuff like building computational circuits using 7400 series logic or low level OpenGL. Since I'm not doing it professionally I've found FPGA boards (Spartan 6/7, Zynq) a decent outlet for what bits of free time I get to keep the passion for learning. Of course that's assuming you're completely up to date on whatever skill set you need in your job (languages, frameworks, platforms, compliance & legislation, etc)

Good question, and you know I haven't actually reflected on that. It's been a kind of vague 'I want to get better' but with no real aim in mind.

At the end of the day, maybe it's just boredom. When I was doing my internships in college and all of this was fresh I found the job interesting and exciting. But now that I've been doing it for over five years I'm craving growth, but it feels like I've already done the brunt of growing that I'm going to do. I'd settle for some interesting projects that bend my mind a bit, but not really getting that either.

If there's anything I've learned about myself since getting out into the wild it's that I actually enjoy a touch of stress, as much as I hate to say it. And right now I'm way, way too comfortable to the point that it's bordering on tedium.

On the bright side, we're planning on having kids, so a predictable, boring job may become more of an asset when that finally happens.
 
Back
Top Bottom