How do you choose a field in programming when you're interested in so many?
Posted by fotisstoy@reddit | learnprogramming | View on Reddit | 88 comments
Hi everyone! I'm really passionate about programming and interested in many different fields, such as web development, game development, data science, AI, and more. However, I'm struggling to decide which area I should focus on.
How did you choose your programming field? Do you have any advice on how to decide between multiple areas of interest? What factors helped you make your decision?
carminemangione@reddit
My advice? Focus on the math (set theory, graph theory, algorithms, game theory, etc). Learning programming theory, compiler theory then hit linear algebra, statistics and most important if you can projective geometries.
Then you will be able to do everything.
haitrinh_se@reddit
Thank you for your advice 💯
tboneee97@reddit
How did you show your math skills to get into all of those fields? I've always been very good at math and could probably learn those subjects in my free time because my current degree program doesn't have heavy math in it. Also for what it's worth, seems like solid advice to me! Want to mentor me? lmao
carminemangione@reddit
Awesome question:
First, my pm's are open and I am willing to help you with hard problems or deciding direction/courses. My last job I was able to mentor dozens of engineers. This one provides less opportunities. So I would be happy to mentor you. I will also hook in my network of friends.
Second... NASA i got the job because I knew FORTRAN, C, C++ and could demonstrate a solid knowledge of orbital dynamics. I think my bosses quote was something like, "I have interviewed many people but you are the first to know the orbital elements. Now for the question I know you can not answer: how do you convert mean anomaly to eccentric anomaly" Hint: I took the class it is Newton's method.
Here is my advice: whenever you do something in CS think about the mathematics behind it. RDBMS will be set theory, dynamic programming will be graph theory, scaling systems will be queueing theory, statistics and linear algebra. Algorithms will often involve understanding complexity theory and Turing's completeness
Here is the best part: most people know none of this. So, when you can do it, it will seem like you walk on water.
Why do I want to mentor you? So that there will be another developer who does not write code that gives me ulcers and makes me want to slash my wrists
PossibleCourt9951@reddit
Can I also PM you?
carminemangione@reddit
please do
Wasd8800@reddit
Hi I am currently started to learn about discrete mathematics which is quit confusing for me because I am new to programming and computer science. Can you give me some advice for regarding learning about mathematics for programming because I don't know where to start.
Independent-Flow5686@reddit
hi, can I DM you? I had a a few questions and I don't want to derail the discussion here.
carminemangione@reddit
please do
misplaced_my_pants@reddit
If you're in college, ask your program about research opportunities in those fields.
Your university is your biggest resource.
tboneee97@reddit
That makes sense. Didn't even cross my mind. Thank you!
arabidkoala@reddit
Personally, I had the luxury of knowing people. I knew someone who served as a good mentor for some deep technical stuff, who guided me for long enough that I was able to start teaching myself. I also knew several people who were amazed by what I was able to do with these skills I learned, which opened up some really good opportunities a few years later, which I knew were good opportunities because of what I had learned.
tboneee97@reddit
I don't know anyone in this field other than my 3 classmates. And we're all still in the learning stages!
Time_Pen_3738@reddit
Hey , I am interested in learning these things alongwith programming. Could you please suggest me a course and the roadmap to proceed with. [For context: I am a 1st year college student].
carminemangione@reddit
Cool, where are you studying? I can help
Time_Pen_3738@reddit
As i said I study in a college in india
misplaced_my_pants@reddit
https://www.mathacademy.com/ is great if you can afford it. It does everything for you if you keep showing up and doing the work.
ambaboy1@reddit
How would you compare it to Khan Academy?
misplaced_my_pants@reddit
Khan Academy is great, especially as it's a free resource, but Math Academy is way more efficient and effective.
You don't have to watch any videos.
The lessons are even more bite-sized.
The spaced-repetition is more advanced.
You'll learn quicker and remember more if you just keep showing up everyday to do the work.
Even if you start at the very beginning, you could easily get to understanding calculus within a year if you're consistent and spend enough time on it.
thanlong341@reddit
Hey,
Thank you for your helpful reply. So to summerize, you advice to learn programming theory and math. Do you know any road map or books/courses to improve these knowledges ?
Nowaday, technology is developing very fast with AI, in some countries, knowing AI prompting is mandatory to get a job. What is your point of view about this?
Thanks a lot.
misplaced_my_pants@reddit
https://teachyourselfcs.com/
https://www.mathacademy.com/ is great if you can afford it. It does everything for you if you keep showing up and doing the work.
Ignore AI for now. AI prompting isn't mandatory for any programming job. Focus on building a strong foundation.
thanlong341@reddit
Did you also follow this path?
misplaced_my_pants@reddit
I just went to college. These things didn't exist back then, but I know enough to know that these are really high quality resources.
thanlong341@reddit
Thanks for your comment.
I can see the link https://teachyourselfcs.com/ is quite good. To read all of them and really understand them would take a lot of effort I believe.
Math Academy seems interesting, looking at the guy in the review trying to solve math problems gives me a lot of motivation. I'm quite into Mathematical Foundations.
I'm 30 years old and starting to move to CS, I know it will take time to really master all of them. Like many others, I would preper doing bunch of coding or projects to make learning process less boring. But it seems that building a foundation is really important, so I will consider following Mathematical Foundations.
Thanks a lot.
notSugarBun@reddit
Can you share the resources you followed? A structured approach would be great
misplaced_my_pants@reddit
https://www.mathacademy.com/ is great if you can afford it. It does everything for you if you keep showing up and doing the work.
carminemangione@reddit
https://www.amazon.com/s?k=manga+guide+to+statistics&crid=22X0W134HJUE1&sprefix=manga+guide%2Caps%2C179&ref=nb_sb_ss_ts-doa-p_3_11https://www.amazon.com/Manga-Guide-Regression-Analysis/dp/1593277288/ref=sr_1_4?crid=22X0W134HJUE1&dib=eyJ2IjoiMSJ9.41P0EW-ty9uRTCFvHots6BZhrEBi-e9rt7Hv3ZGjLG3WCXEAq2QTEo5msHLyqFRdDvjH78d0KJraJiP1QjOAFsCTuslsttHhFSIUAhQvm4Ea3oJj6EojwM_tDRmTWMngbq0gX9Y6Rm6iV6XQd5-IzsV8lA02tsBnpuJJ0GOonQ2EWGYFC08nsSMzvJWZjq3yjvUiv3bW6gWZ01Gua4kgeLpkcLKJjI1lGOJ2BHU_5Vw.87AyGDrvYql7vMbx5XMCdhXPe5DiW
https://www.amazon.com/Manga-Guide-Databases-Mana-Takahashi/dp/1593271905/ref=sr_1_5?crid=22X0W134HJUE1&dib=eyJ2IjoiMSJ9.41P0EW-ty9uRTCFvHots6BZhrEBi-e9rt7Hv3ZGjLG3WCXEAq2QTEo5msHLyqFRdDvjH78d0KJraJiP1QjOAFsCTuslsttHhFSIUAhQvm4Ea3oJj6EojwM_tDRmTWMngbq0gX9Y6Rm6iV6XQd5-IzsV8lA02tsBnpuJJ0GOonQ2EWGYFC08nsSMzvJWZjq3yjvUiv3bW6gWZ01Gua4kgeLpkcLKJjI1lGOJ2BHU_5Vw.87AyGDrvYql7vMbx5XMCdhXPe5DiWB
I know it seems strange but these are written by one of the best. The format is in manga, but hell yah
Shrinefox@reddit
Do you have a recommended resource for learning math? I need to learn calculus and discrete mathematics for a CS degree, but I’m pretty rusty at it after going to high school a decade ago and not practicing since. It’s the main thing discouraging me right now but I think I just need the right material
misplaced_my_pants@reddit
https://www.mathacademy.com/ is great if you can afford it. It does everything for you if you keep showing up and doing the work.
windhn@reddit
The best advice I ever seen!
carminemangione@reddit
Thank you
windhn@reddit
I majored in mathematics. My friends who are good at math only took 3–4 weeks to learn and work in programming-related jobs. All the foundation they had was the C++ programming language.
fotisstoy@reddit (OP)
Thank you!
Rancham727@reddit
Do projects that encompass a particular thing you want to learn about. Remember you don't need to make a completely fleshed out project to explore something.
Look at jobs in your area. One thing also to consider is everyone wants to be a game developer but there's not exactly a lot of places hiring for that and of those many don't want someone that hasn't worked as a dev for a few years
huuaaang@reddit
I transferred from says/net admin to programming via making an internal web app for a school so that set the pace.
Go wherever is the opportunity.
tboneee97@reddit
I'm in college so for me, I'm just learning whatever they'll teach me. After this, I'll take whatever job I'm able to land due to the job market right now. After that is when I'll hopefully have enough knowledge of everything to decide for myself where I want to take this career
Jeremyrecker@reddit
Good point most people don’t have the luxury of getting what they prefer, at least for a while.
tboneee97@reddit
That's been my impression so far. Hopefully I luck out and get something fun lol but if not it's okay
kiefitreal@reddit
You sound like a wise young man
tboneee97@reddit
Thank you for your kind words, but idk about young! Lol I'm 27 and just started college this year. I hope I have enough wisdom and intelligence to make this work in a rural area. My wife isn't open to moving out of the dirty south so I'm hoping to land something here.
Omidvon@reddit
Hey, I'm 26 and just went back to uni for Computer Science. Glad to see I'm not alone in the journey!
tboneee97@reddit
I started in January of this year and was 26 at the time. Had a bit of a rough start because I chose the wrong school, but I feel I'm in the right school now and things are going pretty great. Trying my best to hold onto my 4.0 lol
Noobmaster0369@reddit
I'm 25 and started in computer science too 😁
misplaced_my_pants@reddit
If you're just starting college, I wouldn't worry too much about the job market.
While it still sucks, it's also been improving and should be back to normal by the time you graduate.
tboneee97@reddit
That's what I'm hoping for. My graduation date is in January 2027.
fotisstoy@reddit (OP)
Thank you!
x1Akaidi@reddit
if you have no goals do as he said. if u have on goal on the other hand, then u gotta choose fast, for me i wanna have my own business, so i need to make a saas, i have no money to hire engineers to do it, so i do it myself, web dev, frontend, backend, some other stuff, have a prototype, get investment (or lunch a smaller saas first), hire others to do other staff (if it's a big saas, yes in my case) cz u can't learn everything in a small time frame.
other than than, see what u like more, problem solving? creativity and art? math, analyzing and predicting? handling corner cases? automating stuff? deep research?... there is a field for each of these, just find what u tend to like more of the things i mentioned above in day to day life, then see which field in cs matches with it, and u r good to go
Satan153@reddit
Hey I'm an undergraduate in cs degree I'm interested in saas I'm good in Java lang, Android ui development and some other stuff, if u have something for me then dm me .
sangeyashou@reddit
At the university I studied in first year we learned all the basic principles of software engineering like algorithms data structures databases etc.
Second year they had us learn introductory courses for every major field of programming from web development data engineering game development machine learning embedded systems low level programming etc.
So by third year we "kinda" new what each field offered and what it took to navigate it so we had to choose a specialty direction.
So third and forth year we had advanced courses on what we would choose. We also could select two course from other specialties by semester to study.
But even with all that many eventually turned to other specialties.
My advice learn the fundamentals of software engineering, get whatever job you can get at first at pivot to what you end up liking after. I even had engineers with many years in the industry change specialties at my current employment.
Appropriate_Cat5316@reddit
My advice is that this is just making it harder for you to get anything done. Don't worry about it.
Find anything you would like to do, a small little project or learn about one specific thing. Then do it.
After you have you will know better than now what you want so next little project or thing you pick will likely be a better choice than the last until you end up somewhere. Probably not where you imagined from the start... I thought I wanted to be an electrician because I really liked hooking up things and making them work, then automation technician because I realized it was controlling them I liked and finally I realized that programming was the best fit for me to do this so I ended up working with embedded systems.
Doesn't matter but it will resolve itself as you go, as long as you get going.
Hopeful-Sir-2018@reddit
It often boils down to this: Get into tech and climb up. Unless you're uniquely special or have a a privilege no one else has (e.g. your parents are friends with someone who owns a company and can shoe horn you in) - getting experience in any way in tech is a start. It can be helpdesk. First goal: Whatever pays the bills. Second goal: Whatever is even remotely close to tech. Third goal: Whatever is in the genre of your end-game (programming).
Getting IN gets you an in. Then.. whatever Lady Luck gives you up a good ways. Eventually you're extremely skilled and experienced enough to be picky. Then, and often only then, do you get your own choice.
Your hobbies are where you express yourself outside of that.
Expecting to just jump into a specific one leads to heartache and frustration. Learn to be flexible in your languages. "But I don't wanna do PHP!" suck it up if that's the only openings, do it. Some experience is better than no experience.
Importantly: Experience also often means opportunities that otherwise wouldn't be presented. Your co-worker you became friends with got a job doing iOS dev and they need one more... you're that one more. Or you go to events that are company funded and you meet the right people.
Rarely will your career be shown a straight line to where you want to be - and that's especially true in programming.
Artistic_Master_1337@reddit
Do'em all
Neither_Ambition7771@reddit
Focus on what you want to get into.data science. Data analytics, data entry, etc For example, I'm 6 data analytics. I only need to know html, css ans css +, r programming, and Python because those are crucial to being a data anylist. Each field has its own programs. It's not hard
DataScienceFor_All@reddit
Look at your field of study and determine where it aligns best with a programming language. Programs that rely heavily on statistics and data analysis would definitely match you to Data Science. Programs that focus on building websites, apps, software will tune you towards Software Development or Web Development. It's a simple decision that can be made, but also consider what your interests are.
mosiGitau@reddit
Start with html and css , before you understand what's programming you will be able pick your filled
International_Cry_23@reddit
When I was studying, I was learning a lot of Java and wanted to be a backend developer. I also learned some other things my university required me to learn. Then I managed to get my first job in embedded area after being rejected many times in the field I wanted. Now I am a C++ embedded developer and I’m happy with it. So in my case I can say I didn’t choose my field, my field chose me. However, I still learn other fields from time to time.
fotisstoy@reddit (OP)
I love Java and backend dude but I am confused with all these fields.
misplaced_my_pants@reddit
Don't worry about specializing right now.
Focus on building a strong foundation.
MixuTheWhatever@reddit
Looked at what were the popular languages and frameworks in my area for job offers and started from there. I started with Java, Angular and PostgreSQL. Now as I'm working as a junior dev, sometimes I've been moved to a project where that's not the baseline and I just take up and learn what I'm given.
Mental_Jackfruit6872@reddit
There's nothing stopping you from exploring different fields. What I'd advise is pick a field where you'd want ro make a career out of and then dabble on the other fields on the side.
Additional-One-3732@reddit
I have the same thing going with me. I am just exploring every topic superficially one at a time.
ROSSARKO@reddit
It's already a question of what you already know and can do. If nothing, then different people advise differently, for example, you can start with computer science. Then study some programming language and choose the most convenient one for yourself. Why is that? Because the principles are generally the same. Except that not all languages, let's say, support OOP. I am not so successful in terminology myself yet. But knowing procedural programming and OOP + algorithms, it will be easier to understand the work of those or other technologies. It is not bad to study trigonometry (games), discrete math (to work with physical devices) and others. As it was explained to me - programming becomes quite simple when you start to understand how it works.
mailed@reddit
when you find out, let me know. so far in my career I've done web/mobile/desktop dev, robotic process automation, data and ML engineering, business intelligence, cloud engineering, a bit of on-prem network stuff, low code stuff with power platform, and now security automation
now that I'm nearly 40 my brain feels like a scattered mess these days. it's hard to even interview for a new role 'cause I get anxiety about not being a generalist anymore 😂
anprme@reddit
you can learn all of it in your free time or pursue a degree. but you also have to be realistic. i dont think youll get a job in AI if all you do is visit s coding bootcamp for example
IndependentMonth1337@reddit
Wrong. That's not how the real world works. If you got the right contacts or the right person likes you then you can be whatever you want. If you're good at it doesn't matter that much.
fotisstoy@reddit (OP)
Thank you!
notSugarBun@reddit
may be focus on stuff common in most of them
alexwh68@reddit
In the late 80’s I was already programming but had done nothing commercial, all my own stuff for just me to use. I was doing work experience at the time and it was coming to an end, my boss said ‘I cannot pay you anything as per the terms of the agreement with the work experience, but that does not stop me funding a bunch of training courses for you. Here is a list of the courses we send our permanent staff on, pick a few and the company will pay’
I picked things like spreadsheets, word processing etc, things I thought would be useful going forwards, I was in my late teens. Gave the list back to my boss, he said great list, I want to add one to the list that I think would be good for you’
He added Dbase 3+ course, this was a 3 day course, day 1 I came out of the course knowing I had found the thing I could get good at, and importantly had value to other people.
Roll forward to today, I am still a developer, my core skill is databases, I have over 30 years experience in Microsoft SQL server and I have enough work for the next few years as a freelancer with the promise of more work down the line.
My son is learning to program at the moment, I am exposing him to as many different things as possible in the hope a little lightbulb goes off in his head like it did with me.
Try lots of things, without trying you won’t know if that lightbulb will go off or not, programming is a hard job, so it has to be interesting to keep up, do what you enjoy then its much less of a job.
No_Schedule7680@reddit
I struggled with choosing a field too, but eventually went with GIS and mapping development. It combines programming with solving real-world problems in areas like urban planning and environmental conservation, applying data science and AI with real impact.
If you're looking to balance multiple interests, geospatial programming could be a great fit. It allows you to expand your skills without being confined to a single area.
_nepunepu@reddit
I didn't want a job that was "merely" playing with pixels on a screen. That felt too abstract for me, so I became a PLC programmer/controls specialist because I wanted a job where I'd get to move around and do tons of different things every day.
It's a bit far removed from "standard" programming and it requires lots of ancillary knowledge that's unrelated to computer science. I have an electrical licence, for example, as well as a licence to calibrate and legally certify pasteurizing equipment.
It's super satisfying seeing your efforts result in things moving in real life and producing tangible things people need though. And no day is the same, as well.
alfieurbano@reddit
100% agree. My route was different, kinda the opposite. I studied mechanical engineering, fell in love with plc programming, worked in automation for 5 years and am now a data analyst. I miss the plc part though, unfortunately salaries are not competitive compared to data analysis (that I can work remotely for higher paying countries)
fotisstoy@reddit (OP)
nice story!
jacobprogramz@reddit
I have done it over 10 years. Did them all basically. Well, now doing lower level stuff and FPGAs and designing quantum computers. But, I'd say um, just have fun. Make an idea, and then code it. Nowadays, you have ChatGPT and other fancy tools as well, way easier than when I started. Wish you luck!
meharajh9@reddit
Its pretty normal to feel overwhelmed considering how vast CS is... But i would suggest doing your fair bit of research regardimg what is it you actually want to achieve via programming.. Also keepimg in mind CS is pretty flexible, if you know programmimg in general you can switch betweem programming languages with ease.
edmazing@reddit
Are you me?
I started at high level concept stuff. Flavors of BASIC and scripting. Felt I didn't know what I was doing. Moved to webdev with just the most basic HTML,CSS, and JS. Then PHP while it was new and hot. I was learning Java in school. I got burnt out and took a world tour learning esoteric languages.
Then moved to game dev with C#, tried going lower level with C on embedded systems while building silly games. I got burnt out again, so I went with more theory crafting, learning about algorithms and historical stuff. A very big why and mechanical "How?"
Now I'm doing C++ and lower level 86X ASM. While I can handle C++ well enough ASM is new but also all too familiar thanks to historical stuff (Huzza for punch cards. Remember it's all just zeros and ones.)
That was my indecisive as fuck path. I tend to feel bad about learning scripting languages because they're subject to change, version to version, more so than C or such.
There's always something more to learn though. So pick a thing and try it out.
Imperial_Squid@reddit
I can't make the decision for you, but I can give an important detail:
Do you like maths? Like really really like maths? Cause data science and machine learning both feature a lot of it lol
Speaking as someone who did an undergrad in data science and a post grad in machine learning, they're both very rewarding areas to learn about, but you won't get by if you're purely here for the coding side of things.
Dont_Forget_My_Name@reddit
I made the mistake of building a home lab now I have to choose a path all avenues of networking and the different kinds of software development...
AmiAmigo@reddit
Those fields are quite different. I would advise you to do some more reflection…data science and web dev for example are completely different. And depending on the tools you use
dmazzoni@reddit
It doesn't matter which one you learn first. The basic programming skills are similar no matter what you do.
If you're looking for a job, keep in mind that some fields are much larger than others. Practically every company hires web developers. As much as AI is a fad, there are only a tiny fraction of jobs doing that. Games are also very niche - there are a relatively small number of jobs at game companies.
Also don't forget that most jobs are more behind-the-scenes work that you've never even heard of. There are a huge number of jobs working on enterprise software - stuff that employees of big corporations use to organize things internally. It's not exciting but it can be a great chill well-paying job.
roger_ducky@reddit
Look around at the potential employers and see what they’re looking for. Choose the ones that seem to be most common. Most non-tech companies that have junior positions might not even care what stack you know. You’re gonna be learning on the job. But, to increase your chances, check job boards and talk to the people at career fairs to see what they need.
PigeonPigeoff@reddit
you just need to pick one to start with and go from there. you won’t like all of them and eventually it’ll be clear which you want to pursue the most
fotisstoy@reddit (OP)
Thanks! I think backend is more my thing, and I love working on little projects with Arduino and stuff.
remerdy1@reddit
I think Arduino would come under embedded rather than backend
remerdy1@reddit
Depends on what your doing. I'd focus on web until you have 1 or 2 projects to show employers as that's what most companies need.
If your self taught I'd continue focus on web as you'll find it hard to break into other fields but if your in college I'd just focus on whatever you want. Find yourself a roadmap and dedicate a few months to just learning whatever field interests you
nando1969@reddit
Try to determine which field you feel the most passionate about, and that should be a good tell.
fotisstoy@reddit (OP)
Thank you!
GSikhB@reddit
Very good question. I’m pondering this too.
I’m commenting to see the response
Hopefully we both find clarity soon!
fotisstoy@reddit (OP)
follow the train!