What are programmers hired for
So what are programmers hired for, are they hired for problem solving abilities with code, or their expertise in a certain field for example web development and I know web development also demands problem solving.
And I know companies also demand other skills like communication, etc but I am talking about major skills.
So for example if a programmer is good at problem solving. But if he is not good in a specific field, will the company hire him because he can grasp any language in which the company works because he knows all the basics in programming, and like I said he is very good at problem solving.
Because isn't a programmer's work to make good algo and convert that in code whether any language and that demands I think problem solving abilities.
3 Replies
People are generally hired based on experience, and for programmers that means experience with the specific languages. Not always frameworks or tools, but it can weigh in the decision of who to hire
No one is hiring js devs to write device drivers
But people are hiring react devs to write vue code
also, if you fill a niche, that is a reason to pick someone
for example, someone who does front-end but also can work on this other framework/tool that has a ton of legacy code done with it, may sway the decision in your favor
or if you know cobol
Beginners get overwhelmed / overentheusiastic about programming languages. It's not like a spoken language where grammar rules are wildly different and each takes decades to learn for most. All programming languages boil down to the same fundamentals of how a computer works and just specialize in being good at certain things. They're just tools to tell a computer what to do. Those core principles are what's most important. Understanding the requirements of the application and then using the right tools to build it. Many programs are made up of different languages and as a programmer it's not uncommon to hop between them. That depends on the project. But each language includes a whole ecosystem of libraries and ways of doing things, so if you are experienced in one field that demands a set of languages, you're of course more hireable for that job. I think any programmer can learn any language and framework if they're just given enough time though. But time is critical so you hire people who already have the experience. I'm somebody who's self taught before getting formal education, so I constantly hop between languages and learn new things. All depends on what the problem is i'm trying to solve.
So yes, programming is problem solving. The "problem" you're solving is how to turn the insane ideas and dreams of eccentric billionaires into actual lines of code that make the thing work
Programming is also not as tightly coupled with math / algorithms as you might think. At least it depends heavily on what sector you work in. There's a lot of rather boring plumbing work that has to be done just getting basic program flows to work which don't demand a lot of math or algorithmic thinking. Webdev / ui especially is usually very light on complex calculations and is mostly about architecture and the issues you run into when scaling things up. Simple things suddenly become very complex. But of course if you're programming trajectory calculations for a lunar landing module, that's gonna be a lot of math
I'd also say that there's sort of two kinds of programmers. Academic and entrepreneurial. In reality everyone is on a spectrum I think / has both of these aspect inside them. This is just something I noticed
Academic programmers are more interested in the software itself. What the project is and what the requirements are doesn't matter as much as that the software itself is well written. They usually get obsessed with performance, architecture and cleaning out unnecessary inefficiencies. This is like a java consultant who specialises deeply and can make a lot of money helping other projects with their java problems. In my experience most programmers steer more towards this type
Entrepreneurial programmers treat software more as a means to an end. They have some project in mind and will learn whatever is needed to get that done. They might build less optimal solutions to get to the bottom of the problem quickly which can hurt in the long run if the tech debt is not maintained. This is like the typical startup founder who gets to market quickly with quick and dirty solutions. He may not be an expert, but he achieved his goal of building that product, which is all that matters to him in the end
I just realized that this is also sorta like Open Source vs Commercial software lol