Not cut out to be a programmer?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Chaotic42

Lifer
Jun 15, 2001
33,929
1,097
126
This is an interesting point. I have had the experience where I was on a team were we had a mixture of qualifications but we had a guy who was doing the UI and once the dataset he was rendering got to a certain size the UI would choke. He was trying to render 100,000s of rows at the same time using a loop that was executing in quadratic time. He didn't have a CS background and he couldn't figure it out. Our tech lead who did have a (advanced) CS background had to diagnose and fix it for him. Which IIRC was reading the rows from a cache in manageable chunks.

Complexity doesn't come up very often for what I do (hey it's .NET) but if you don't know big O it can be problematic.
Yeah, I've been able to take some existing code and get absurd speed gains by changing the way the algorithms run. I never took an algorithmic complexity class, but I'm familiar with the basic concepts.
 
  • Like
Reactions: urvile

purbeast0

No Lifer
Sep 13, 2001
52,855
5,726
126
Yeah, I've been able to take some existing code and get absurd speed gains by changing the way the algorithms run. I never took an algorithmic complexity class, but I'm familiar with the basic concepts.
I'd also argue you don't have to know big-O notation to be successful either but at least need to know what makes things more efficient than others and can explain the difference between two different scenarios as far as performance goes. It's more important to be able to know and explain why 2 algorithms are different other than just saying what each of their big-O notations are.
 
  • Like
Reactions: urvile

urvile

Golden Member
Aug 3, 2017
1,575
474
96
I'd also argue you don't have to know big-O notation to be successful either but at least need to know what makes things more efficient than others and can explain the difference between two different scenarios as far as performance goes. It's more important to be able to know and explain why 2 algorithms are different other than just saying what each of their big-O notations are.

Yeah. That's very important. It's not just about memorizing the complexity like you could do with say quicksort and mergesort. It's about understanding how you calculate that complexity and that there is a worst case, best case -> time & space. :) That's the way we were taught it at university. However I am super rusty on it now......
 

purbeast0

No Lifer
Sep 13, 2001
52,855
5,726
126
Yeah. That's very important. It's not just about memorizing the complexity like you could do with say quicksort and mergesort. It's about understanding how you calculate that complexity and that there is a worst case, best case -> time & space. :) That's the way we were taught it at university. However I am super rusty on it now......
I'm way more rusty on knowing big-o notation personally bit I can easily explain the complexity of algorithms. I have literally never had to use big-o notation once since graduating college in 2004.
 

urvile

Golden Member
Aug 3, 2017
1,575
474
96
I'm way more rusty on knowing big-o notation personally bit I can easily explain the complexity of algorithms. I have literally never had to use big-o notation once since graduating college in 2004.

I can't say I have ever used big O professionally either. As you say it's more about being able to understand what's optimal and what's not.
 

AMDisTheBEST

Senior member
Dec 17, 2015
682
90
61
Yeah. That's very important. It's not just about memorizing the complexity like you could do with say quicksort and mergesort. It's about understanding how you calculate that complexity and that there is a worst case, best case -> time & space. :) That's the way we were taught it at university. However I am super rusty on it now......
I learned this the previous semester and I literally forgotten everything by now.
 
  • Like
Reactions: urvile

urvile

Golden Member
Aug 3, 2017
1,575
474
96
I learned this the previous semester and I literally forgotten everything by now.

I found that CS fundamentals and the math I was taught has all long since been forgotten but if you go the master and/or PhD route or land a job that is heavily math based and/or the code needs to be super efficient. You will need it. I have a buddy that has a PhD and does ground water modelling (Geometric algorithms and whatnot on massive datasets). He still uses this stuff regularly.

EDIT: Just to add if you interview for companies like amazon, linkedin, palantir etc. they will expect you to know CS fundamentals inside out and will put you through coding interviews to prove that you do.
 
Last edited:
  • Like
Reactions: Ken g6
Feb 25, 2011
16,788
1,468
126
Fortunately, both professors and fellow students taught me programming wasn't for me not, because I couldn't do the work or didn't like it but, because I hated the personalities that worked in the field.

"Hey, Dave, who's hotter - Troi or Seven of Nine?"
"Mike, we've had this conversation, like, three times."
"Yeah, but.... who's hotter?"
"You realize there, are, like, actual girls in this class? Who maybe don't want to listen to you talk about boobs for 20 minutes?"
"Ummm... really?"
"Thanks, Mike, I'm going to go major in music now."
 

MagnusTheBrewer

IN MEMORIAM
Jun 19, 2004
24,135
1,594
126
"Hey, Dave, who's hotter - Troi or Seven of Nine?"
"Mike, we've had this conversation, like, three times."
"Yeah, but.... who's hotter?"
"You realize there, are, like, actual girls in this class? Who maybe don't want to listen to you talk about boobs for 20 minutes?"
"Ummm... really?"
"Thanks, Mike, I'm going to go major in music now."
I wish it was that "normal."
 

YuliApp

Senior member
Dec 27, 2017
457
149
116
desirehive.com
i've always found coding terribly boring to work on, but the creativity aspect and seeing the results is what drove me.

That was C++/Java days.

Well that changed when i've found VB.NET (laugh as you want). The whole new IDE and syntax is so almost artistic and focused on results. I still fight with exception and missing pointers, but man, i can recommend it to everyone who have to code but hates the compexity aspect of it.
 

KIAman

Diamond Member
Mar 7, 2001
3,342
23
81
You have to keep in mind there is a huge variety to programming/developing/engineering. In all the years of my career, I've yet to do the same type of job and they were all very different.

For example, my first job out of college was web using vb and aspx. It was fun for a year or so, writing hotel reservation pages but soon it got a little boring.

Then I got into POS (point of sale) where I programmed entire restaurants, reservations and seating, menus, pricing, sales on Micros hardware. It was fun at first, then it got a little boring.

I did custom kiosks, financial interfaces, excel scripting, db management, web portals and the list goes on and on as I jumped from job to job. And they were all very different and required different skills and temperament and different tools and almost every programming language.

I've been in very process-light and agile environments all the way to working at a heavily regulated medical device company. I've worked as the sole developing entity and also part of a huge team.

The point is, you shouldn't be quick to judge if you were "cut out to be a programmer" or not based on a tiny view of the programming world.
 

Bradtech519

Senior member
Jul 6, 2010
520
47
91
look into devops/systems engineering type of jobs. I never thought I'd find programming/coding interesting/fun. So I did systems/networking jobs. Then I got into scripting on Windows using VBScript & eventually Powershell when it came out. Got into tools like Chef which lead to learning Ruby. That really is what sparked my interest in programming. Even though I'm more of a Systems guy. We now use source control, VSTS, Jenkins, and treat infrastructure as code. It's way more rewarding and efficient. When it gets to where serverless compute is the norm. You are somewhat capable of transitioning into different roles.
 

Chaotic42

Lifer
Jun 15, 2001
33,929
1,097
126
look into devops/systems engineering type of jobs. I never thought I'd find programming/coding interesting/fun. So I did systems/networking jobs. Then I got into scripting on Windows using VBScript & eventually Powershell when it came out. Got into tools like Chef which lead to learning Ruby. That really is what sparked my interest in programming. Even though I'm more of a Systems guy. We now use source control, VSTS, Jenkins, and treat infrastructure as code. It's way more rewarding and efficient. When it gets to where serverless compute is the norm. You are somewhat capable of transitioning into different roles.
This is the exact aspect of modern programming that turns me off of it. I hate doing all of the things you listed. :p
 

Maximilian

Lifer
Feb 8, 2004
12,603
9
81
Eh I think most jobs have boring/crap aspects to them.

After a year of being a junior dev I have had tasks which were fun to do and others which were pretty terrible. Reading some stories like this though:

https://projectfailures.wordpress.com/2008/06/24/project-from-hell/

Kinda puts things in perspective. Yeah some of the stuff I work on is cobbled together questionably designed stuff but its not that bad. That said, everything ive done has been far far better than my previous job (customer service in a callcenter for a bank :weary:) .
 

purbeast0

No Lifer
Sep 13, 2001
52,855
5,726
126
There's something very rewarding about making something out of nothing, and then seeing users using it and enjoying it. it's a very good feeling. I also like that not every day is the same, you're always working on different stuff and implementing new things, so you're constantly learning. I'm a problem solver by nature too so it definitely fits me. I thoroughly enjoy the challenge of not knowing how to solve a problem, and then having to figure it out on my own. It's a good feeling when you do.

And don't get me wrong, any day it's nice outside I wish I was doing a job where I was outside. But then if I was doing that, I wouldn't be making nearly as much money as I am now.
 
  • Like
Reactions: Bradtech519

Bradtech519

Senior member
Jul 6, 2010
520
47
91
Agree 100% with purebeast0. I replaced an on-premise vCloud Director system with Jenkins & custom PowerCLI code to do all the same tasks. I offered it up to our QA department that used vCloud & it was now one button push instead of manually shutting down VMs inside a vAPP. One of the most rewarding things in my career. Along with figuring out how to do it all of that.
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
It's crazy you did that. I did something similar with C#. I wrote a tool that let the deployment team do pre and post snapshots and restores of dev, prod, and qa systems prior to releases without the need to train them on vCenter. I also had a great tool back around 2010 I wrote to allow me to provision new systems with puppet and vcli.
 

urvile

Golden Member
Aug 3, 2017
1,575
474
96
Interesting. One thing I like about this forum is that I always learn something. The last job I had we had devops guys who basically glue together the latest releases (which came out of jenkins) with deployment using powershell and python. To deploy into prod. It gave me some serious respect for those dudes. Because it isn't easy.

EDIT: And chocolatey packages. Basically linux on windows. Awesome.
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
That's basically most of my job now (well the last few weeks anyways). I build CI/CD pipelines for companies. The amount of customization can be staggering.
 
  • Like
Reactions: urvile

Ancalagon44

Diamond Member
Feb 17, 2010
3,274
202
106
Interesting question OP. No, I don't think you are the only one to ask that question - not by a long shot.

I have been coding professionally for over a decade now and I've done a lot of different types of programming. I've worked in product shops where they develop a product to sell or lease, I've worked in IT consulting companies that sell their services, and I've even started my own video game business. Didn't get very far with that last one but it was by far the most interesting and enjoyable programming I've ever done.

I've worked in VB6, Classic ASP, ASP.Net, C++, C#, Java, various flavours of SQL, Javascript, typescript, even a bit of Ruby.

Some jobs were really good, some really bad. I enjoyed the consulting jobs less than the product shop ones. And I enjoy front end of any kind a lot less than I enjoy backend and database stuff. During the bad jobs, I questioned whether software development was really the career for me. But switching jobs made me realize it wasn't software development as a whole, it was those specific jobs.

You mentioned creativity - I wrote a game (or part of one) in C++, using the Ogre rendering engine, bullet physics, and some other sound library. I cashed in my pension (what I had saved up until then) and used it to support myself for 8 months. That was some of the most enjoyable programming I have ever done. I solved some really, really interesting problems. I implemented a random map generation system that built an entire 3D mesh for a stage, I wrote pixel shaders, etc etc. It was awesome.

It was also the wrong way to go about game development but that is a story for a different day.

Does that mean you should go and work for a game development company? No, I'd say the possibility exists for those jobs to become soul crushing too. Just depends on what you do at the game company - not everyone gets to be the engine programmer.

Right now I want to move from regular software development into more data science/machine learning. I am studying both at the moment, and will hopefully be making an internal move later this year. Getting into that sort of environment will get me solving interesting problems again and not working on frontends, which I hate.
 

urvile

Golden Member
Aug 3, 2017
1,575
474
96
That's basically most of my job now (well the last few weeks anyways). I build CI/CD pipelines for companies. The amount of customization can be staggering.

They were deploying/provisioning some really complex stuff using powershell coupled with json configs and data loaded into a powershell session along with PKI. Into a border control system which used facial recognition. You need guys that really understand powershell on the windows side and python on the linux side. From talking to these guys they live and breathe devops. It's the first time I have seen CI done properly. I have seen half arsed attempts but these dudes really knew their stuff. It was impressive. That's my previous job. Now it's back into the defence sector for me. :) My new employer told me that they hired me because of the previous companies that I have worked for. That I know doing code fixes on prod is not the sort of process defence expects.

Always love it when I know I am going to be expected to butt heads with current long standing employees over process. :) but if there is one thing I know it's process be it agile or otherwise. :) Oh yeah.

Although I have seen what happens when agile smashes into waterfall and it aint pretty.

EDIT: In my own defence I was drunk when I posted this. Thank you for your patience.
 
Last edited:

SpectateSwamp

Member
Nov 1, 2013
29
1
81
If you don't Jam you code like I do.. I don't think it can be that much fun.
When you spend days even weeks before you see output... You lose motivation
To H with the Yourdoneers and that Structured Coding crap.... Spaghetti code rules....

My custom MultiMedia player / Search Engine is nearly 20 years old and getting better every day.
check out the 1 file program.. All kinds of tricks and very simple maybe even a little inefficient.

Find what excites you and GO.
http://www.telusplanet.net/public/stonedan/source.txt
 

urvile

Golden Member
Aug 3, 2017
1,575
474
96
I don't think it can be that much fun.

You are right. Coding often isn't fun. For a multitude of reasons. Unless you are a professional. I suppose that is hard to understand? However you still need passion and an aptitude for it. If you want to make a living as a software engineer. If I don't find a job engaging and/or I am expected to do a lot of overtime due to poor management. I find another job.

I can get another job because I understand what dependency injection, unit tests and mocks are. Amongst other things that I won't bore you with.
 

cytg111

Lifer
Mar 17, 2008
23,175
12,837
136
I am far more interested in the idea than the actual coding. I get an idea and I have the tools to make that idea become reality. It is an outlet, conduite, for creativity. I dont give two f's about the language or aesthetics of it.. I do take little offense to some of the highly inefficient dynamically typed languages though .. how much corbon dioxide are you trying to burn man, just cause you cant type int or happen to have a billion clocks at your disposal so who cares?.. Anyway, its about what I can do with it, not about it.
And then I take the skills to an employer/contract and get paaaaaaaid. ;).
 
Last edited:

Charlie22911

Senior member
Mar 19, 2005
614
228
116
I've always had an interest in programming, but I've always struggled in math (I have dyscalculia). Growing up in a rural area meant I had no one to tutor or mentor me so I never got into it. That has always been a big regret.