IT/Software career thread: Invert binary trees for dollars.

Tenks

Bronze Knight of the Realm
14,163
606
I greatly prefer K&R. Our search engine here, written in C, uses Whitesmith and it is fucking gay
 

Vinen

God is dead
2,783
490
It almost sounds like many of those are expecting competent developers and just calling them interns. Possibly for the sake of trying them out and very easily killing their job without any legal ramifications towards the company since you were just a 6 month intern or whatever.
We expect to teach them how to work on a real world project. We do not expect to teach them basic programming skills.

Most of our interns are are also working on their masters as well.
 

Vinen

God is dead
2,783
490
That's the real important part here. I hate disjointed code bases. Unless someone has some real ugly code, use the standardizations that everyone else has generally agreed upon.

Unless it's tab. 4 spaces assholes. Always 4 spaces.
Dear god, had some idiots who used tab at a prior job. Holy crap was the code-base a fucking mess.
 

Noodleface

A Mod Real Quick
37,961
14,508
Yeah as an intern I tabbed everything in a fairly large project (1500ish lines) and no one caught it until I pushed it to SVN.

Got taught to set Eclipse up to auto do 4 spaces when you tab
frown.png
 

Voyce

Shit Lord Supreme
<Donor>
7,165
23,442
Just wanted to throw my current situation in the mix. I've been working in IT for the past 5 years. My formal education only includes an associates in information tech (lol). The only programming experience I have is basic C# and VB. Job history I went from help desk to lead tech at a food distribution company then jumped to a sysadmin job at a bank about 18 months ago.

In the last 2 years a good bit of software development companies have been moving to my city through a state software development incentive. My question is how realistic is it making the jump from one side to the other? Does working on that side of IT have any benefit to getting my foot in the door? I believe Voyce had posted that he made a similar jump a few pages back.
Yes, so when I transitioned it was from a contractor in one department to a employee in another unrelated department in the same institution.


Despite having taken several Programming courses in College, it had been several years since then and COBOL is a language that I'd never worked with prior--but that was also partially to my advantage. There are less graduating Comp Sci and Info Technology students willing to work on Legacy systems like a Mainframe, and having been employed by the same institution in another capacity (an Enterprise level Help Desk), I had the added advantage of knowing indirectly but still relevant architectures to my job, when I was still in training I often put my tech sav to use to assist my boss and co-workers, not in actual development, but everyday computer problems, as it happened my boss while very intelligent, didn't have the luxury of growing up with a Windows PC, and since we run a TSO environment off of standard PCs, there were often ways that I found I could be useful, even when I still felt lacking in my coding expertise.

As far as development, a lot of my work revolves around fairly routine CRUD services, quite honestly most COBOL lines are data moves. Once I became accustomed to my compiler, and the environment specific overhead, the fight turned to familiarity with Business rules, and gaining intimate knowledge of preexisting applications which we come to inherit. Probably hardest stuff is using our debugging software to trace bad data from memory to where it's getting corrupted, it's a pain when your following a lot of pointers, that and trying to make sure people code their modules to work with your own.
 

Deathwing

<Bronze Donator>
16,426
7,437
Since this has become a general programming thread: how do you measure your own ability and knowledge and feel like you know enough for how much experience you have? My degree is in computer engineering, so programming hasn't been the primary focus of my career until lately. Switching to purely software was a conscious choice of mine because it seems the hardware side is very fickle and tied to the whims of consumers. So now I'm a bit worried that while I have 10 years of programming experience in various languages, I don't actually feel like an expert.


Related story time. During my last job hunt, I interviewed at a place that made, essentially, cash registers. The job was for writing firmware, so I thought I was a perfect fit. My would-be boss was a bit weird. He was very open, post interview, about whether he was still considering me and he provided me multiple articles about what the ideal programmer should be. While feedback is appreciated, it was definitely against the norm. They eventually offered me a job, $20k under than what I was making. It was college graduate money for a 5 year experience job. As far as I know, the position is still open almost a year later.

Anyway, one thing that really bothered me is that he asked me how much time I spend outside of my job keeping up on programming skills and such. I hear this a lot on interviews("What do you code at home?"), so I had bullshit ready to go. What I wasn't expecting was him to answer his own question. He might have been bullshitting too. Or he might have actually expected someone to spend 10-20 hours outside of work, honing their programming skills. Reading subreddits, writing your own code, that kind of stuff.

Am I wrong to think this is a bad precedent and expectation? I fully understand this is how the best get to be the best and more power to them. I like programming and my job well enough, I just don't have the drive to spend that much time on it. I can't even think of what kind of things I would code at home, regularly, 10-20 hours a week. But I can't help suspecting I'm missing out on some key component to advancing my career.
 

Tenks

Bronze Knight of the Realm
14,163
606
I consider programming to be the easiest part of my job. Pretty much every day I walk into work having to solve a new problem in a new way using a new framework or 3rd party. That is the hard part. The constant and unending treadmill of knowledge. I'd love it if I could just sit down and write code but I can blow past that so quickly that it now is like 20% of my job. I seem to have shouldered this role of "Get new stuff working" then leave it there for others to flesh out. I actually miss writing a ton of code like when my company first stood up our Map/Reduce cluster since that is why I got into this line of work.
 

Tuco

I got Tuco'd!
<Gold Donor>
45,454
73,543
If someone gives the impression that they don't have a lot of experience coding in their career, either because they're someone transitioning into a programming career or they are a recent grad, usually the, "what side projects do you have" question is the only chance you can give them to show they're a programmer. One of my side projects I did at home is what helped me get my first software job.

But if someone is writing code 20 hours a week (and likely doing software related tasks outside that) it's unreasonable to expect them to go home and write code also.

To your core point, one of the ways I try to improve my skills is when I start new projects I make what moves are reasonable to try new things. If you're making cash registers and use C and get a new cash register project it's a little unreasonable to say, "I want to learn java, let's switch to java!", but there is some room to learn. Also a sad fact is that it's optimal for most people to switch jobs every ~3 years. You learn and earn more that way. I've been working at the same place for 6 years and am very comfortable here, however.
 

Cad

<Bronze Donator>
24,492
45,421
Coding is easy

Designing software systems that will be maintainable, extensible, not tied to bullshit frameworks and 3rd party shit you don't need, and understandable by the monkey programmers who will come after you, that's hard.

Figuring out obscure bugs that monkey programmers created because they don't understand bullshit frameworks and 3rd party shit, thats hard.
 

Tenks

Bronze Knight of the Realm
14,163
606
Yeah the architecture side of the fence is much, much harder than the actual implementation side. A good architecture will lead to easy implementation.
 

Deathwing

<Bronze Donator>
16,426
7,437
Perhaps I was being too specific in my wordage. Simply put: should extra effort be required to advance a career? I'm not debating whether coding is easy. Or if extra effort doesn't reap rewards, it obviously does. But for how many times I've been asked on interviews, "how do you do this job when we aren't paying you to do it?", is that a dangerous expectation to have?
 

Tuco

I got Tuco'd!
<Gold Donor>
45,454
73,543
"how do you do this job when we aren't paying you to do it?"

What does this mean?

To answer your question, " should extra effort be required to advance a career?" not always. Sometimes there's a crunch time and you have to spend extra effort. Sometimes you get tasked with developing a web server and you haven't written any networking software in a decade.

One struggle I've always had in my career is that if I work 40hrs a week I can produce 'ok' stuff that meets the requirements. But if I work 60 hours a week I can make awesome stuff that is exciting, novel, commendable, publishable or just well organized so in a few months I can reuse it more easily.

In my current role this difference is even more stark, because it means the difference between a robot that plods slowly on straight path with some major constraints and a robot that hauls ass through undiscovered territory dodging moving obstacles, negative obstacles, getting out of ditches etc etc
 

Tenks

Bronze Knight of the Realm
14,163
606
I put in extra effort but I make my company pay me for it. My place is very open about you having some time to learn new technologies and make prototypes of them. I haven't written hobby code for the sake of writing code since college.

With that said if you want to quickly vault the ladder you just need to predict the next hotness, become competent in it then reap in the rewards of knowing an in-demand skill.
 

Asshat wormie

2023 Asshat Award Winner
<Gold Donor>
16,820
30,964
If you do not do side projects, how do you keep up with new tech?
 

Tenks

Bronze Knight of the Realm
14,163
606
Depends on the job you want. For just writing cash register firmware there isn't much tech to keep up on. If you're in a position like me where I work with tons of frameworks and high level languages I generally keep up by reading various programming blogs/forums and try and fit a business need with the new tech. But you also have to pick and choose which new tech you want to learn. Honestly if it isn't going to help me at my current job or help me get a better job I don't see the point in learning it.
 

Deathwing

<Bronze Donator>
16,426
7,437
Tuco, essentially what Tenks said, "hobby code" is a great phrase for it. The interview questions seem like thinly veiled suggestions that you love this job so much, you do it in your free time. Maybe it's just a "let's see who this guy is" question, but I think that's a horrible way to find what motivates people.

I have no problem with putting in extra time on a project, that's just the nature of work. I've been able to balance that relatively well over the years and I think I'm relatively good at judging when I might need to put more than the standard 40 in a week. What I'm having trouble judging is should I be reading some subreddit or news site for programming skills at 9PM at home instead of playing a game or watching TV with my wife? Should I be writing hobby code?
 

Tenks

Bronze Knight of the Realm
14,163
606
The only time I'd write hobby code is if I feel my skill set is falling behind. Some places are better than others about letting you learn and grow as a developer than others. I just make sure to check out Monster and figure out what people are asking for in your average-everyday-developer and make sure I have the skills for most generic developer positions. Like if for whatever reason your company closed today do you have the resume to quickly find a job? If not then I'd probably write some hobby code to remedy that. But most places hiring developers (at least good places -- places you'd want to work for) realize that capacity for learning is more important than what you know this very instant. Obviously you need to know programming at a fundamental and expert level (like could pseudo code any problem) and probably an individual language at an expert level but a good and smart developer can learn any new technology in a week tops and become fairly proficient in it in a month. Possibly they gauge your capacity for learning by your out-of-office habits of learning.
 

Cad

<Bronze Donator>
24,492
45,421
If you do not do side projects, how do you keep up with new tech?
This is when you tell your bosses "there is new tech out there, we need it for project Y!" when that tech is what you want to get into in your next job. Then your current job pays you to learn it.