Yes! I think this is what I'm looking for ๐ thanks for saving me a bunch of time I'll check this out :)
Obligatory: Don't learn programming languages. Learn programming problems and which languages were developed to solve these problems.
Also, you say you've reached a reasonable level of fluency with javascript and python. What does that mean? Having a grip on the syntax is different than being comfortable with half a dozen libraries and building an application that solves real user problems.
If you're learning for the joy of learning that's great! But maybe then try something completely different than the C family of languages. Try Prolog or Assembly and try to make some applications!
No one can make moral or ethical judgments for you. I recognize the hesitance towards defense, surveillance, attention-commerce, and tech consultancy. However, there can be positive moral and ethical perspectives even on those examples. The reverse is also true for industries that, on the surface, seem much more ethically marketable. I personally consider any automation that removes human work from the economy to be a positive contribution to humanity. You can make the perspective that robbing labor opportunities from real humans is a moral failure. My point is that moral choices are usually based on a combination of personal values and a certain understanding of the problem space.
I can't make ethical suggestions for you, but here are some options that might appeal to you:
- Paperwork Automation for professionals (Lawyers, Notaries, Hospitals, Governments)
- Bioinformatics for medical and environmental applications
- Computer vision for medical tools (Detecting anomalies in scans)
- Agrotech (seed, grow and harvest food more efficiently for a better environment)
- Prosthesis Robotics (Help people in need of mobility)
- Accessibility Engineering (Help people with disabilities access websites, programs and games)
- Environmental modeling for sustainable planning
- Supply chain optimization (software to get goods from A to B with the least impact)
- Video Games!
A career is not only the industry or sector you service. It's also about the relationships and colleagues you deal with. The work ethic and labor standards you have to deal with. The opportunities you get to build a reputation. The physical location of the opportunities. These are all things to consider when starting out on a career.
Edit: The best way to feel good about work is to set reasonable expectations for yourself to others and meet them consistently. Understanding human problems and solving them. That's what telling computers what to do is all about.
I had been struggling with severe RSI for a few years and no one thing helped. I would try something out and the pain would return in a few weeks. What eventually completely solved my problem is variation. I have several working spots using different devices (traditional mouse, vertical mouse, thumb balls, trackballs, pen tables, touchscreens). I've made sure to just change posture and devices every few weeks. Ever since doing that, my problems have completely gone away. A mobile standing desk that you can adjust for squatting to slouching to sittin to standing and walking is great adds a ton of variation.
We use them. They have been incredibly helpful. The concept has spread to our product team making product decisions!
I'm having trouble picturing the problem. Are you trying to have a bullet leave multiple decals in it's path? Or decal non-colliders?
Maybe you can do something with collision layers and assigning the colliding objects to groups that determine the texture of the decal?
Don't teach yourself complex software dev skills. Teach yourself complex software problems and learn how others have solved them in the past.
Inheritance is a fine abstraction. Easy to understand, but can't bring you very far. It's like a necessary evolutionary niche. It has its places, but it's most important as a gateway to get us to better abstractions.
Theres like a whole class of "Stuff you have to relearn every time you have to use it": XPath, JMESPath, cron, ffmpeg, ImageMagick, PostScript etc.. REGEX might be king of those :p
Also works for cron jobs, shell scripts, SQL queries, HTML layouts and the odd mermaid diagram
Want and grit. At some point you'll have to grit it out. You have to make it clear to your brain that you want it. Make it personal. Want it not the way you want to have a cookie after dinner, want it the way you want to breathe. Don't even want the project, but want to prove to your brain that you are a rare capable human, able to start and finish a creative endeavour independently.
Make work time scarce and urgent. Having a child has done wonders for my creative output. I used to splurge 6 hour sessions kinda working on something..now I get maybe 40 minutes a day. An hour if I'm creative about it. But heck, does that hour get applied like nobody's business.
Hope this helps, best of luck!