The typical suggestions for people in my situation dont interest me. These seem to be roles adjacent to what I do now and often, but closer to business then tech. These might include becoming a business analyst, technical salesman, fast tracking to management, etc. These are sound even worse to me than what I do now, and given the choice I'd just stick with development.
Now I'd likely have to return to some sort of schooling and I'm young enough to do it (I guess), but given my intellectual limitation and my stubbornness on what I take interest in, I'm not sure what options I have.
So I would start at finding which thing interests you the most. What meets the job criteria that you are looking for BUT also excites you? Then focus on moving in that direction.
And maybe "programmer" is the problem. Be a _____ who can also code. Zed Shaw said it best in the final pages of learn python the hard way. Programming as a career is rarely fulfilling to anyone. But being a teacher/doctor/librarian/entrepreneur/warehouse worker/farmer/etc. that can code is a super power.
I'm basically talking to myself with this pep talk so I appreciate you bringing it up but.. let's both go find the thing that we like and apply programming to that thing!
1. Keep your job for now. This is a good time to have a paycheck. Think of it as chores to pay the mortgage. Maybe you'll get a dishwasher later, but for now the dishes gotta get washed.
2. Find a psychiatric or clinical psychologist and have yourself evaluated for mental illness. This is actually really important. Unlike physical problems where it's sometimes obvious ("I can't read the billboard by the road, I probably need glasses."), mental issues can make subjective impressions unreliable or misleading.
> I fail to understand, fail to recognize patterns, am too slow to understand simple concepts and never retain anything. Occasionally understand the individual concepts of something but then her completely lost when they're all combined
Too slow compared to what? Fail to recognize based on how many exposures? Taken together this feels like a learning disability that makes you slow to internalize material in the standard way, and you're not building up the mastery of the fundamentals enough before trying to combine them. Again, psychological evaluation is the way to go.
Also, don't look for work where you love it all the time. No one's going to pay you for that. What you're after is work that you can do and feel some basic satisfaction when you put it down for the day instead of being cast into a downward spiral by it.
You also are allowed to have other stuff that provides the meaning and enrichment for their lives. In fact, you should.
Sooo... right now thanks to covid19 basically every class at your local community college is online try a GIS class, it's a little bit python, a little bit SQL, a little bit data science-y and sometimes you go fly a drone around.
Or you know something else, the point is there's plenty of fields that aren't explicitly tech adjacent that the ability to program at all gives you a somewhere between a head start and superpowers.
BUT also I'm with the other guys too, maybe talk to a therapist.
As far as retaining things, there's an awful lot of stuff where you don't need to remember the details - knowing something exists lets you go find details when needed, and the more useful items will stick with you after you start using them regularly. I'll use trees as an example - there are more different kinds of trees and ways to implement them than you can shake a stick at, but most programmers aren't going to need to implement any of them ever. Do you need to remember details about balancing, etc? Probably not.
Some points:
- pattern recognition is basic brain function and everyone has it
- you need PERFECT health to be smart; check testosterone, sleep, weight, nofap, exercise etc.. 90% people have brain fog for some stupid fixable reason
- there is nothing wrong with CRUD app maintenance if you make good money. Challenge is nice, but gets old very fast, unless it is a hobby.
- avoid relationship until your life is in order. Huge time sink and ruins concentration.
- stop reading crap (politics, twitter... )
See other comments on interest. I'll address your thoughts. You're speaking casually, but your exaggerations can be dangerous when you're vulnerable:
> nothing sticks.
Not literally true that "nothing" sticks, since you later mention things you recall.
> I fail to understand, fail to recognize patterns
There's partial understanding and levels of understanding. You can notice progress by comparing your present understanding with before.
> am too slow to understand simple concepts
Here you admit you do gain understanding, but dismiss it. What is the threshold for fast enough?
> and never retain anything.
Again, not literally true that "nothing" is retained.
> Occasionally understand the individual concepts of something but then her completely lost when they're all combined in some applied method.
Again, you admit understanding, but dismiss it because of difficulty in the next step. Also, "completely" lost is not literally true.
---
These casual exaggerations are dangerous when you start to believe them, because they aren't literally true. Changing them won't solve the problem completely, but you'll see it more clearly and that helps to solve it! Advice:
notice what you _have_
retained/understood/applied
(especially in contrast with before)
[But the real problem is boredom]
If you do want to try later on and do something related with tech, not necessarily as a coder, have in mind the bizarre startup world! A lot of people get funding for simple business ideas! So try to live a fulfilling life and if you ever want to comeback do your own business and create a nice work environment for your team!
I'm skeptical of the idea that you're not smart enough. In my experience, becoming a good programmer requires some relatively low-threshold capacity for logical thinking combined with a tenacity for debugging and understanding how things work. Being a genius who picks up math and CS concepts quickly is far from required.
If you struggle with patterns and applications but are bored by simple CRUD apps then it may be the case that you just don't like programming that much. That would certainly make it very difficult to learn and retain anything.
Overall though, you sound more depressed than anything. If that is the case then it colors all perception of what you enjoy or don't enjoy, and probably should be addressed directly before making any major career decisions.
You don't have to be super smart to make games and I don't think you even have to like them. It's more the rich visual feedback that makes it fun. A game engine is like a giant virtual playground for your code.
And in video games there isn't really a "right way" to do anything. There are always weird problems to solve and hacky solutions are fun and even expected. It's the only programming where I've had some laugh out loud moments, like "why are the trees inside out and spinning around?"
There are some great game dev postmortems where you learn about the beautiful horrors going on behind the scenes to make a vision a reality. Game dev is forgiving like that. From the book 3D Math Primer for Graphics and Game Development: "If it looks right, it is right".
I agree with commentators who say software development can be a terrible job if you aren't really interested in it. I knew a lot of young consultants at Accenture when I worked there in the early 90s who hated the programming roles they were expected to do for the first couple of years. But most of them were not from comp sci backgrounds, and wanted to move into management consulting roles as quickly as possible.
Based on your comments about having trouble learning and generalizing, it sounds like you might be happier in a more process-oriented role. Or maybe you would be happier in a role that was more focused on personal interaction?
you're not slow, you're probably average. When you start working, all the things you can learn in a weekend quickly evaporate within 1-2 years of your working career. The only things left to learn are those that take 3 months or more.
These things take the right mindset to learn - continuing to think about them, tackle them, ignoring failure and coming back to it over and over because that's the nature of 3 month learning projects.
You may think you're stupid but you're probably average for a programmer. I do agree with the rest of the thread, you're lacking the spark - the thing that other people have that allows them to persist despite the challenge to figure it out.
Take a personality test, like MBTI, and use it to figure out your preferences. Introverted Feelers are usually smart enough (NFs) to do programming but hate it, it could describe yourself.
It's probably a good idea to keep your day job while you develop interests outside of work and investigate other job options. School can be good, but it can also saddle you with expensive student loans that take several decades to pay off.
Or,
Find love. Have children. Be a great parent.
Coding is just a tool, a means to an end, not a career. If you don't like using a keyboard/multimeter/hammer, don't work in an area that requires a keyboard/multimeter/hammer.
Painting and parenting can both be very rewarding, and make you very happy over a lifetime.
As for money, enough to get by, can be enough. Life doesn't have to be about ways to get money.
As for understanding new tools and techniques, I'm never able to do it unless I have a real problem that I'm working on that requires it. Toy problems and coding exercises won't work because the problem is contrived and isn't a real problem that needs fixing. Math, especially, is a wonderful tool, but I'm not interested in it for its own sake. This doesn't mean you are stupid.
So, figure out what you want to be doing and figure out who's doing it. If you are young enough to return to schooling, you are probably young enough to get an entry level position if your skills are a bit weak in the required area.
I ended up writing CRUDs, various data converters and fixing bizzare bugs in legacy software. Slowly I lost interest in programming and I discovered that I am no longer interested in new tech. I completely missed javascript hype train for example.
But it's OK. It's just a job. I have other hobbies/friends to feel fullfilled.
Also - I keep programming as hobby. I just more interested WHAT I am doing instead HOW I am doing that (which is just usually easiest path).
For example - I really started digging into audio programming - basically coding my own VSTs in Csound/Cabbage. That's really interesting stuff and also sometimes very challenging, because it involves math which I am generally struggling with (I had diagnosed discalculia back at the school).
For example: I just spend two days (!) inventing this little piece of code: f(k,n) = (k * n) - (k-1)
If youve already made the decision you are leaving programming... Can you think of things you have enjoyed about your career to date (i.e. coding, testing, designing, meeting people etc)? and what was it that steered you towards the career in the first place?
All that really matters is if you can build things that work.
People who can do the above will get paid, can even be CTOs.
So what if Google wouldn't want you as a programmer, that's for a particular type of person.
When I read this I see me me me me me me me me me.
Think of things in terms of how you are helping others instead of so selfishly about yourself. The world doesn't exist to serve you. What are you expecting, some amazing job to fall down from the sky that is all about you and everything you want? Doesn't work that way! You need some career capital. What value can you provide in exchange for these things you are asking for? If you want an interesting and fun career you need to be skilled enough at something to counter balance the value you receive.
More concretely: there is a fantastic book called "So Good They Can't Ignore You" by Cal Newport. Give that a read and it will provide guidance and a new framework with which to see the world.
I've been interested in programming since I was a teen, but it was always the applied side - I enjoy building stuff, and the tools are just like any other tools you'd use.
I don't find the tools or methods particularly interesting, not nearly interesting enough to devote a huge part of my time to study them extensively.
And it was with that realization that I understood the following: I will never become a good computer scientist, theoretical or practical.
So my solution was simple: Do not chase, or focus jobs which require a passion or deep interest in computer science, because:
1) There are far more highly intelligent and highly passionate programmers out there, that are genuinely interested in the theory and technicalities. I will never be able to compete with those.
2) I will burn out spending my days on something which does not naturally interest me (enough to do it for min. 8 hours a day)
3) My energy should be directed at being more productive, where I can actually show good results. We have a finite amount of time to do something, so don't waste it.
All these realizations came during college. Some of my classmates would read books on compilers in their spare time, because they simply could not wait for the classes (which we had a year later).
Compilers are fascinating on a high level, but not fascinating enough for me to read whole books on them.
Furthermore - to me, proof of concept (and novelty) is more fascinating than the optimal solution.
There are lots of jobs for both types, you just need to find out what really tickles you, and follow that lead. As others have said, bridging fields ("businessman" and "developer", etc.) can be really rewarding.
Think of something that really interests you; Anything! And then try to find out how you can enhance that with development. Do it because it's fun, not because it's something you feel like forcing yourself to do.
Find something outside of work that excites you if work doesn't excite you. Work isn't everything. If the actual thing you do at work doesn't excite you, try making friends at work who do excite you.
If writing simple CRUD apps is boring, it sounds like you actually have some aptitude afterall. If it's boring, try to find the sweet spot of challenge with capability. It sounds like you are capable of more than what you are doing now, so gravitate in that direction and move from there.
About feelings: you have to feel your feelings, but productivity is difficult if you're always feeling down. Don't beat up yourself, which adds a 2nd layer of sadness to an already sad situation. Get enough sleep and work on things that excite you.
If you need encouragement, try and find others stories of career change, and how they did it - there are plenty of them out there.... From https://www.ambisie.com/st/kerry-kitzelman :
"Some jobs can be like golden handcuffs. They pay well but you feel trapped by them. You are afraid to step out and make a change in case you wind up worse than before. Some jobs are like cardboard handcuffs, they pay nothing but you still allow yourself to be trapped by them because of fear of the unknown.
Making a decision to change may indeed result in your fears being realised, but facing that fear gives you the courage to overcome.
Since the day I decided to cut the umbilical cord to poorly paid employment, I have not been afraid to apply for any position I think I might enjoy and be rewarded for. It sometimes means steep learning curves and working harder than anyone else on your team, especially those that have the experience you don't. But the reward is that the world opens up to you. There is so much more opportunity than you could possibly have imagined."
But if you really can't think of anything that suits you or motivates you, then I think the problem is your own behavior and thinking patterns, that you need to change. You seem to have gotten stuck in a rut, so a nice break from it in a form of say school doesn't seem like a bad idea.
Don't however, let the fallacy of sunk cost misguide you. Just because you have been doing software development doesn't mean you can't switch to manual labour. Or that your next job has to be somehow related to your current. Listen to your own emotions and thoughts, don't let the past weight you down.
For example, that one very good programmer and Youtuber, bisqwit, actually works as a bus driver. Which I think is really encouraging in showing that even if you are really good at something (or you like to do as your hobby), doesn't mean you have to pursue it as your career.
Being you, I'd first try to figure out how much money I need to feel comfortable. Then ask if I can afford to be less comfortable and for how long. Then I'd look if anyone else depends on me for their comfort.
Finally, I'd try to imagine what I'd do in my free time should I forget about all of the above. AND for how long would I be ready to stay oblivious in that.
If I see myself making money while doing that thing that I imagined, I try to write it down and later figure out a plan to make that happen... eventually.
Meanwhile, I'd take some rest and solve something approacheable. This will sure be a booster, to start believing that you've got that thing that you think matters in life. And you can make it better!
“Study hard what interests you the most in the most undisciplined, irreverent and original manner possible.”
“You have no responsibility to live up to what other people think you ought to accomplish. I have no responsibility to be like they expect me to be. It's their mistake, not my failing.”
If you find yourself having trouble figuring something out, do not beat yourself up over how much trouble you’re having. That type of thought takes you down a really rough negative spiral.
Instead, focus on your desire and will to figure it out or get it done. Believe in your ability to figure it out and then go prove yourself right by using your will to do so to power the work that will get your where you want to go.
You have the power to pull yourself out of the rut, and you can get help from folks like counselors and peers too. But fundamentally, I have found that it takes a strong internal will to get out of a rut. I think that you can find that will and act upon it.
I found that I was finding it harder and harder to do things that take effort, even if they interested me (programming for work or fun, reading mom-fiction material, chores, etc) but instead spent a lot of time on HN (errr..), youtube, playing videogames, eating junk food... By abstaining from all stimulating activities, to make “low dopamine” the new normal, I could make the payoff of high effort activities worthwhile again. Concentration and motivation improved.
Again,I really believe its more about preserveerance and interest, not inherent intelligence. If you can build and maintain CRUD apps without an issue, then with time and effort I am certain you could progress to other more interesting challenges given enough effort.
It sounds like you're basically at square one. Do you have another skill set? Are you particularly interested in some other field? It's difficult for a stranger to give you life advice when all we know is what you are not interested in or capable of. Tell us more about what does feel engaging for you, and we may be able to help more.
I am doing my Masters in Statistics after doing my BS in Computer Science. It was overwhelming and like you, I felt I do not understand even the basic concepts and it takes longer to grasp the simpler concepts. But I realized I just have to spend more time on topics I do not understand and ask for help from my peers.
From my experience, in terms of learning new subject, I think what you are feeling/facing is expected and you just have to push through it.
The other prompt that felt interesting to me was that you feel an intellectual limitation in terms of what you retain, what does that look like in practice?
You might want to use that as a starting point and then branch out.
Alternatively, it seems like you might be struggling with anxiety/impatience and you might want to work on that instead of trying to reorient your external life.
Some suggestions: try exploring mindfulness and meditation, it's pretty easy to get started with an app like HeadSpace. Also, I would highly recommend the book The Charisma Myth, it's pretty simple and has some excellent exercises to deal with a range of impairing feelings/emotions in an effective way.
Also look up 'imposter syndrome', it does sound a lot like you're suffering from self-esteem issues too so maybe get someone to talk with?
The ability of be bored is I think just an important useful neuro-mental process, just like the ability to forget. depending of which side you lean it may be useful or be a liability under different circumstances.
To end on a pessimistic note, one cannot manufacture interest, unless we come up with a way to skillfully manipulate our neuro hard wiring. I think we a long way off from achieving that.
Reminds me of this famous scene: https://www.youtube.com/watch?v=Wu2HhlTEHMc
you might want to isolate the aspects of what made it fun back in the days when it was a hobby and what makes it dreadful at the moment and find yourself something which include the first, but lacks the later.
personally i think the attractive side of being a developer is creating something. reading you're not interested in business side of tech (analyst, salesman, management) you might want to explore other crafts which maintain the creative part.
that could be anything really. i myself started out as a graphic designer before i got involved in programming which might be something you want to explore...
Took me multiple years, probably a decade between my first hello world and my first job, to become a programmer.
I just didn't give up
25 years as system administrator and I DO NOT want to do DEVops nor SRE.
Not sure where to go myself....
Try taking some time off to decompress and talking to a psychologist. It's a slow process and it can be very challenging but with time you can start getting excited about new challenges again.
The point is not to demoralize someone, but to prevent them from spending a lifetime of angst and anguish in a field that is not totally beyond their grasp but always just far enough above their head to keep them questioning themselves constantly.
OP, it sounds like you've given this a shot and it didn't quite stick. Maybe it's time to try something else. For what it's worth, I felt the same for much of my education, studying physics and passing curved tests but never really feeling like I understood mathematics - and it's a terrible feeling to be somewhere where everyone presumes that anyone is capable of anything while you're here struggling.
I did manage to complete my degree but I ended up specializing in something where I could leverage the mathematical intuition I developed without having to fake my way through actual math, and I'm fairly successful. Perhaps you can do something similar.
The way the entire thread bends over backwards to find something "wrong" with OP, some external, fixable explanation, is counterproductive. These sorts of expectations are good to have but if they are not grounded in the reality of individual ability, they can lead to serious mental health problems.
You don't need more school, you need to find a healthier attitude, and maybe coworkers you get along better with.