As a senior software dev, what's the one piece of advice that you would give to your younger self ?

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
5,943
Writing the code is the easy part
The best code is the code that is never written at all; no bugs, no maintenance, no worries.
Rich Skrenta said:
Code is bad. It rots. It requires periodic maintenance. It has bugs that need to be found. New features mean old code has to be adapted. The more code you have, the more places there are for bugs to hide. The longer checkouts or compiles take. The longer it takes a new employee to make sense of your system. If you have to refactor there's more stuff to move around.
Code is produced by engineers. To make more code requires more engineers. Engineers have n^2 communication costs, and all that code they add to the system, while expanding its capability, also increases a whole basket of costs. You should do whatever possible to increase the productivity of individual programmers in terms of the expressive power of the code they write. Less code to do the same thing (and possibly better). Less programmers to hire. Less organizational communication costs.
 

jack_spratt

Expert Member
Joined
May 21, 2018
Messages
2,362
Keep setting aside time to learn new skills.
Learning obscure systems that no one else wants to know is great for job security but can also if it becomes the only thing you do be a dead end. Keep pushing into the main fields where the most money is generated.
I have worked in a 3gl language for years.

What skills would you recommend i branch in/out too?
 

Cius

Executive Member
Joined
Jan 20, 2009
Messages
5,571
I have worked in a 3gl language for years.

What skills would you recommend i branch in/out too?
That is for you to decide. Look for tech areas related to what you already know well that are growing fast and have a skills shortage and jump in. If its something a little hard even better as many lazy devs will avoid it driving up demand further for that skill.

In my area of python dev in investment banking the main skill missing is actually around test automation and making it safer to deploy rapid change in high value trading systems. Hence I just got a new role more in the devops line of work implementing a full suite of automated tests and changing the SWD methodology overall in the area I work to get it more agile.
 

krycor

Honorary Master
Joined
Aug 4, 2005
Messages
15,113
I have worked in a 3gl language for years.

What skills would you recommend i branch in/out too?
0A793302-2454-4496-A850-19731E9FA62A-2636-000004399ECE49E7.JPG

In case someone wonders..

I’ve done 3 & 4 GL, 2GL only at varsity/embedded systems you occasionally look at it. What’s not shown is the BI data warehousing stuff which is all 4GL and limited mostly to enterprise.. fun stuff with figuring out trends.

I don’t think it matters too much unless you want to be enterprise dev with data.. lately I’m trying to get into the full stack stuff (why do they all it this, meh) not for work but for starting my own stuff.
 

_kabal_

Expert Member
Joined
Oct 24, 2005
Messages
2,729
don't believe the lie that to be a great developer you need your own personal portfolio, contribute to open source projects, or have tons of GitHub repositories
 

cguy

Executive Member
Joined
Jan 2, 2013
Messages
5,047
don't believe the lie that to be a great developer you need your own personal portfolio, contribute to open source projects, or have tons of GitHub repositories
It’s been 20 years since I published my last open source project. I need a badge/coin/token or something.
 

skimread

Executive Member
Joined
Oct 18, 2010
Messages
8,890
Network, network, network. It's very important is SA work culture where perceived loyalty is rewarded.
 

^^vampire^^

Expert Member
Joined
Feb 17, 2009
Messages
3,508
don't believe the lie that to be a great developer you need your own personal portfolio, contribute to open source projects, or have tons of GitHub repositories
This. Never had any of this and I've been fine. It does help those who have never been employed before get a foot in the door sometimes. After you've proven you're employable by actually holding down a job then that's all you need as a dev.

Network, network, network. It's very important is SA work culture where perceived loyalty is rewarded.
This and it also helps you get jobs later on. This works especially well by chatting to those in other fields that may be contracting to your current employer. If they remember you and what you do they may pull you in on other projects later. Works for me, I'm actually overloaded with work at the moment.
 

shanezn186

Well-Known Member
Joined
Jun 5, 2019
Messages
172
Do not ever develop for a client for free. Not even it it's a 1 hour work. Always be honest to yourself and to your clients.
 

whatwhat

Executive Member
Joined
Jun 1, 2009
Messages
5,937
That anyone who just spent the weekend learning how to do "hello world" in HTML can call themselves an engineer the following Monday.
 

konfab

Honorary Master
Joined
Jun 23, 2008
Messages
21,226
" You will be using that piece of code/configuration again, so make sure the damn thing is commented"
 

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
5,943
Learn more Patterns and methodologies.
Learn and understand SOLID.
"Pattern generally implies there is some kind of duplication. Duplication should ideally be factored out (OnceAndOnlyOnce aka DRY) so that only the differences remain. It appears to me that stronger languages can more easily remove such duplication because sometimes one has to make a kind of sub-language to do it." -- Paul Graham

If you take the SOLID principles to their extremes, you arrive at something that makes Functional Programming look quite attractive -- Mark Seemann

"This practice is not only common, but institutionalized. For example, in the OO world you hear a good deal about "patterns". I wonder if these patterns are not sometimes evidence of case (c), the human compiler, at work. When I see patterns in my programs, I consider it a sign of trouble. The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I'm using abstractions that aren't powerful enough - often that I'm generating by hand the expansions of some macro that I need to write" -- Paul Graham
 

Genisys

Executive Member
Joined
Jan 12, 2016
Messages
9,497
Care to elaborate a bit more what you mean by this?
To get knowledge outside of the domain you work in, and to get experience with newer methods and technologies personal projects is the best place to learn. Some work environments are stuck on older methods and technologies and sometimes don't keep up with the latest and greatest trends (one hears this complaints a lot in the industry). There are also environments where you are limited to what you are allowed to do by politics thus you will need to find other ways to supplement you skills and to learn new things on your own (another common complaint a person hears about a lot). The whole idea is being able to learn on your own as required and not just learning what your job is trying to teach you.

I think another reason to do personal projects is because you never know when something takes off. Imagine deving the next Facebook, but never releasing it. You'll never know if you don't release/ship that personal project.
 

ronald911

Expert Member
Joined
Jun 1, 2007
Messages
1,507
To get knowledge outside of the domain you work in, and to get experience with newer methods and technologies personal projects is the best place to learn. Some work environments are stuck on older methods and technologies and sometimes don't keep up with the latest and greatest trends (one hears this complaints a lot in the industry). There are also environments where you are limited to what you are allowed to do by politics thus you will need to find other ways to supplement you skills and to learn new things on your own (another common complaint a person hears about a lot). The whole idea is being able to learn on your own as required and not just learning what your job is trying to teach you.

I think another reason to do personal projects is because you never know when something takes off. Imagine deving the next Facebook, but never releasing it. You'll never know if you don't release/ship that personal project.
Exactly! :D

I taught myself new languages and frameworks (for example, Python, Django, Javascript, NodeJS, ReactJS), purely by having an idea for a little website / web app in mind and then aiming to build it in a language I don't know (yet). Obviously won't take on the most complex of projects with something I have no experience with. Grow with it.

When i have some spare time again in a few weeks, I'll want to write an API for a React app I wrote a while ago, but with Meteor JS or Rails... Still deciding which one.
 
Top