Don't mean this to be a mean comment but how did you assess this?
I think i am good problem solver but i don't know if i am better than anyone else.
If I see a problem, particularly in a business context (I’m not a trained scientist curing cancer here), I can solve it. Whether that’s marketing, product, sales, devops, engineering, you name it. I don’t mind jumping between disciplines, getting my hands dirty, and doing the work that needs doing (no matter how unglamorous).
And if I work for companies with hundreds of employees and I’m one of the go to people for any problem, big or small, I know I have something special that sets me apart.
My first job I got because I interned and they wanted me to join full time.
My second job I joined as a straight SE.
My third job was via an acquisition of the second company, and I started as an IC and became a Sr Director.
My fourth job I was a co-founder that did a little of everything.
My fifth job I joined as a senior IC, and basically pitched where I could have the most impact during my first week and then have just run from there.
The only thing that matters when joining a company is really your salary, as they are unlikely to fix that quickly. Role, title, focus, manager, etc, can all be changed quickly if you present a solution to leadership that makes sense to them.
Some ways to modulate it might be reading material such as George Polya's "How to Solve It," taking your own notes on heuristics and techniques you've found useful and continuously reapplying and iterating them, and simply delving deep into many hard problems (be they directly coding related or not).
Within one or two years of doing this you will recognize patterns others do not see. I have improved my problem solving skill by at least 7-8% by doing this. The key is iteration.
My IQ has been stable like yours, around the 96th percentile, and despite being a Tier 1 top-talent engineer, I’ve had to actively improve my problem solving ability over time.
Edit: Oh, the account is nothing but troll comments. Nevermind.
IQ is as proxy for problem solving if the problems look like a standardized test. The problems people face in the real world require more specialization and a more complex combination of skills and traits.
Pattern recognition in obviously helpful when problem solving.
if you think those outcomes are decent proxies for intelligence then IQ is useful
What you're pointing out is that crystalized intelligence is what matters.
Fluid intelligence mediates the ability to gain crystalized intelligence.
Higher IQ in theory means you should get further faster. Though even without if you are dedicated enough to obtain the same level of crystalized intelligence you might be able to do so. I suspect at some point the cognitive ceilings are different, but who knows by how much.
Third, eat right, exercise, live right, etc. Performance is impacted by health and even supposedly high IQ people will perform worse if they are sick, short of sleep, etc.
IQ isn't a useless concept, but I'm somewhat well versed in the history of IQ tests, etc, and it's got a lot of issues with it.
I think a person with a high IQ could be a great poker OR a great negotiator OR a great writer. Perhaps 2-3 total.
It's both fluid and crystalized intelligence that are required.
The better you can pattern match the faster you will be able to acquire crystalized intelligence by being able to connect the dots and you'll likely be able to leverage superior pattern matching abilities to utilize less crystalized intelligence to draw the same conclusions in certain cases. But if you have no or very little crystalized intelligence in the domain you're trying to problem solve in then you aren't going to get very far.
It's very much a combination of the two.
It's really an eye-opening statement for tech roles, and how formally taught and self-taught/transferred folks can work side by side successfully.
The unique thing about tech skills is there's more than one valid way to solve a problem or do something "right". It's hard to measure that.
Not even two CS majors who may be equivalently capable (in different ways) on the outset will be identical, nor will be the outcome of how they grow their strengths and capabilities.
I look forward to HR continuing to evolve better to understand technical roles and contributions as being beyond a binary yes/no measurement.
Current hiring practices continue not to extend well from a bricks and mortar approach to a abstracted online/digital measurement.
In the meantime... knowing how to leverage and communicate your skillet in a transferable way is really what's important. There's no better way to do that than learning to write and communicate well, and better than others.
Better leaders are always taking stock of what they have or don't have and reorienting the process rather than trying to stuff the new team into the old process.
Startups, and riskier technology ventures generally, seem to be the opposite. There you aren't Caesar, you're the Gauls. You're hoping that your team has just what it takes to overcome the odds.
Different skills needed for different stages of growth and not everyone can switch gears or have the range in transmission, founding leaders included.
Clever architecture will almost always beat and outlast clever programming. Knowing how to best approach a problem is more than half the battle.
Yet, I:
- Help with hiring/marketing/leading scrum sessions (when the actual scrum master is ill)
- Conduct pentests
- Do the frontend and backend (what I was hired to do)
If they'd let me, I'd help with the writing efforts as well as my writing ability is better than that of the average developer, if I have to believe my grades on any report in any degree that I did (game studies, psychology and CS).
Most companies and teams are thrilled to have people who proactively seek to solve thorny issues. The difference with me is that most programmers are attracted to solving “problems” in a code base, which might add value but have arguable ROI. I’m rarely the person who advocates for a rewrite or tries to push some hot new technology. I’m almost always the engineer who asks the question “how can we apply what we’ve already written to this new sector” or “how do we change up this experience to cut onboarding time in half” etc.
My unique (well one of) internalized properties I have is having a keen eye for good problem to technology fit. Steve Jobs said it best with
“start with the experience and work backwards toward the technology”
In another words, it’s extremely valuable to be able to understand when you can re use an existing tool (in this case, existing code) to achieve the result, which is different from trying to shoehorn your existing code to fix/improve/add a feature to an existing problem space or product domain.
That’s the real key, to me, in a nutshell
(And why I almost never buy in on complete re writes)
The key, I've found, is figuring out the role that maximizes your strengths, and converting your current role into that (gradually) or finding a company that has a position that matches.
For example, I loved a lot of aspects of being a PM (leading the team, breaking down complicated tasks/releases, designing great UX) but am an engineer at heart. So I worked with my PM to take over responsibilities that leveraged those skills, and then I used that experience to get a new role where I'm able to do those same things to a greater degree (at a company now that combines typical tech lead + PM responsibilities into one).
What is your goal? I identify with the parent comment here, (the parent of that too) and feel like I've reached a point where the most obvious answer to your question (on leveraging strengths) is management.
If you can code, project manage, and communicate effectively with [non]tech people and don't mind the stress of dealing with other people's issues, then it might be up your alley.
Well based on the comment I replied to, you communicated that you did! Don't sell yourself short. Talk to your manager; is there opportunity at your current org to do the kind of work you are looking for? If not, look elsewhere; the challenge is communicating that you have the relevant experience (ideally with something to show at your current role (hence my previous comment)).
Instead I started freelancing, got a few clients, and eventually hired others to help me.
Looking back, when I impressed clients with my work I was regularly offered various forms of management responsibilities. I probably could have found other opportunities like that if I had pursued it.
If you demonstrate good results in one of the main skills required for a job and explain how you would build up the others, you might be surprised at who would hire you.
People who can do well in several areas and effectively manage projects or other people are always in short supply.
Interviewer decidedly nervous, shaking even!
Me Pours glass of water for them, and for me, take sip.
Interviewer Takes a sip, notably calms down
Rest of the interview was: Interviewer:"Do you know XYZ software we have to use?"
Me:"No."
Got the job.
Being funny is one way to be like able
Being a good communicator is probably what I'd ask new devs to focus on the most - it's going to pay out a lot more than an encyclopedic knowledge of algorithms or creative problem solving and it's the only skill that everyone on the team greatly benefits from.
Care to elaborate on that more? Curious to hear what kind of work streams you were a part of, and how they differ from the more 'collaborative' norm of today.
It was an interesting place to be but suffered greatly from a lack of permanence in the roster - for a few years tings were great - then some of our regulars moved on and were replaced with more flaky people. I assume it was just the specific mix of folks that made that setup sustainable while it was.
The problem is no one interviews for that.
Honestly, if someone walks into an interview talking about how they did something awesome to support a co-worker while they were struggling that's about the best anecdote I could hope to hear.
An iPod
A phone
An internet communicator
Lee Iacocca [0] in his autobiography states that his minor in Psychology in college was the part of his education that was most useful to him as he worked his way up the chain at Ford.
I highly recommend his autobiography as well.
How do you suggest to make good use of this situation/setup?
Many of my coworkers over the years had only 2-year degrees, or in a couple of exceptional cases no degree at all. People my age mostly learned to program on our own, as teenagers, starting with BASIC and then going deeper, so by the time we were in a position to take CS 101 or whatever we balked, because spending time listening to a professor tell you about writing a bubble sort in FORTRAN just isn't interesting or applicable when your hobby project is writing your own text editor or whatever.
So yeah, lots of people my age have liberal arts degrees -- political science, English, foreign languages, history, whatever. The secret advantage of that background is that we can usually write and communicate WAY better than the CS grads, which turns out to be immensely useful.
The tl;dr is really "understanding how software gets built AND being able to describe it to both technical and nontechnical people opens up lucrative career paths."
I’m an average programmer.
I’m an excellent problem solver.
I have an above average work ethic.
I’m an excellent communicator.
Basically, I combined all of these traits and found roles that leveraged these traits to maximize my impact.
Not for nothing, but this is why my liberal arts college was profoundly impactful for me, despite not getting a “top tier” CS education. My writing abilities were given a shot in the arm, because I had to write so many analysis papers for my government minor. My understanding of human behavior was expanded by my psychology courses. My understanding of how I should never design a UI was solidified by how poorly I did during a year of art classes.
Some days I wish I was as strong mathematically as my friends who went to MIT, or as talented with programming languages as my friends who went to Cambridge, but each one of us have been able to have successful careers, despite our differences in breadth/depth.