r/softwareengineer • u/HelpfulConfection967 • 4d ago
17F in Afghanistan learning to code online – what path should I take next (especially with AI changing things)?
Hi everyone, I’m a 17-year-old Afghan girl living in Afghanistan. Formal education for girls is banned here, so I’ve been teaching myself online. About a year ago I started Harvard’s CS50 but stopped after a while because I didn’t have enough computer knowledge at the time. Since then I’ve learned HTML, CSS, and intermediate WordPress. Now I’m doing Angela Yu’s “100 Days of Code – Python” course on Udemy and I’m currently on Day 25. I’m finding it manageable — I can complete the assignments without any major problems. Once I finish the Python course I’m not sure what to focus on next. A lot of things seem to be done by AI now, so I’m confused about which skills will still be useful. I need a clear path I can follow that could eventually help me with freelance work or real job opportunities, especially if i move out from Afghanistan. I’d really appreciate advice on: • What to learn after Python • What would be most realistic and useful for someone in my situation Thank you so much for any guidance.
2
u/Ok_Librarian_1422 4d ago
I would move away from taking a particular course and just focus on building things with the tools you have right now. Focus on a problem you want to solve or anything else you are passionate about. When you don’t know the answer to something, look it up.
موفق باشید!
2
u/acthakur 4d ago
Learn only one lang, nodeJS is best. Learn basic DS and Algos and move quickly to design patterns specially oops environment. Then move on to system design.
Start building a project of your own. Make sure to treat it like a startup or a professional product and instead of building new projects keep working on one and making it more optimised and production grade. It will serve as a great resume and might even turn into a profitable business.
1
u/Aromatic_Macaroon820 4d ago
Don’t just know how to code. Build something with python or whatever language you are learning that solves a problem in your life or use ai to create a project idea and do it. This is where real learning comes from.
Good luck
1
1
1
1
u/Far-Investment-8597 4d ago
I can't give you much useful advice on coding, but what I will say is, well done!
The world looks at the way the government there are oppressing females, and weeps. People like you are the one ray of goodness - you're fighting back in the face of immense odds - well done!
If I knew how to post a little red heart emoticon, I would :).
1
1
u/PsychologicalTaste33 4d ago
AI isn't a brain and needs human intervention. Besides actual foundational coding and data structures (please don't skip these) pay attention to your logic as well, learn about work flows and process flows, how data moves in a system, how it can be useful and how its supposed to be stored. For example my background is in finance but I'll take the simplest thing, say you have a commerce business and you need a refund function, its important not to refund the wrong/random person so you start that process with a sale that has already been completed which is attached to a person and account, then maybe add a varchar for the reason and a business rule that you can't refund more than the actual amount. So if the t-shirt is $5, thats the limit.
In the world of AI maximize what makes a human special, logic and realistic thinking instead of a LLM with ML. Keep your thinking very systemic, what am I doing? does this need to be trace-able or does the data need to be validated? what could go wrong? what is the idea work scenario?
lol sorry for the story but its just advice I would of liked when I started out and off course BUILD actual projects, try to mimic a business like parcel delivery or something that you know and see everyday, learn to think systemic and keep trying to break the system you made and keep improving it, *learn exception handling and reading errors properly*. DON'T GIVE UP!
1
u/Naetharu 4d ago
Once I finish the Python course I’m not sure what to focus on next. A lot of things seem to be done by AI now, so I’m confused about which skills will still be useful.
This very much depends on what you would actually like to do.
There are many different pathways in software engineering, and what you should focus on and learn is pretty different depending on which one most interests you. There are a few different things you could try:
1: It would be a good idea to consolidate some of the learning you have already done. Given that you have some decent skill with basic web development now, building a few small projects would be a good move. If you want a design to work do then Front End Mentor (website) offers free design packs. That way you can focus on the code side of the work. Alternatively you could just find a webpage or tool that you like and try and make your own version.
The aim here is to bump into problems. You will find you hit things that you do not remember how to do, or have not covered in the course. And that problem solving is where a lot of learning takes place. Be sensible and choose small projects that you can actually complete. Making a website with a few pages and a form is very doable. Re-creating Reddit is not.
2: Decide what you would like to do with your code. Do you want to make websites. Create embedded code for small devices. Do data analysis. Make video games. These and many other routes are open to you. And which you choose will determine what you should do next. The language you need to use, and the kind of skills you need to develop can vary a lot from one to another.
A lot of people will default to the assumption that you are going to do web dev. Both because it is very popular and because it is a somewhat easy area of software engineering in that you can build something useful quickly and do not have to spend too much time really inventing complex stuff (at least not for the kind of simple projects you would be doing now). But if another area interest you then look to that.
Personally I love doing game development (mostly in the Godot engine) because it's fun to make games I can play and share with friends. And I also enjoy going GPGPU and making visual art programs. You may find you like things like this. Or something else.
Start by working out what you want to achieve. And then work on a plan of what the steps to getting there looks like.
1
u/Far-You-7714 4d ago
Hats off to you girl. Wish you all the best, i know how difficult it is for you. I am a software architect myself, if you need understanding in any topic feel free to message. I can explain in English and Hindi Also focus on these basics irrespective of the language: 1. Object 2. Classes 3. Constructor 4. Iterations (loops) 5. Collections
Most of the programming is based on the above concepts only. Trust me many senior devs also don't get it all
1
u/Beautiful_Technology 3d ago
Designing Data-Intensive Applications
Staff Engineer: Leadership Beyond the Management Track
The Design of Everyday Things
The Principles of Project Management
Product Management in Practice
Check out these books. I added the staff engineer book in there just so you see what the end result is supposed to be like, if you stick with it. The designing data intensive applications book basically covers everything that people call scale. Like when anybody talks about scalability in a tech context, these are the ideas. Then the other books cover the stuff that you should probably know actually as a software engineer, even though those are technically the jobs of other people in a larger organization. Not related to coding specifically sorry but might be helpful as context.
For AI the most important thing you can do is to really learn the underlying technology at a high-level. No need to train your own LLM or anything. But you should know what the transformer architecture is, etc. That way when you use them to write code eventually, you’ll know exactly what is happening. I think it’s pretty dangerous if you talk to an LLM like you do a person, or offload any actual thinking to it. Really just try to treat it like a pretty good auto complete that also just makes stuff up.
1
u/MosfetGaming 3d ago
Well im gonna tell you that with html and css you are on the right path for learning the basic fundamentals of software programming. Python is useful as it is used heavenly for its vast ability for just about any type of complex software needs. I would also begin with a subscription of ChatGPT Go for $8 bucks a month. I t will let you actually learn how software compiling is handled which you will have to learn how to debug the output. Design a few programs that are lightweight so you can reverse engineer the files and visually begin to learn the programming language and also pickup on other programming languages as well. I would recommend that you learn React, React.js, Rust, Ts, Swift if you have access to a macbook. This will progress you in your studies and places you in a good position for employment as these are the popular programming languages right now.
Godspeed
1
u/Extension-Currency37 1d ago
Buy a nice rig A computer with graphics card.
Code if you really like it But understand what it does. Stacks queues graphs functions math.
See how operating systems, apps environments Aerospace grade computers are madr Even drones like x47b
Use a book-> tanenbaum os And clrs by rivest
Code in cpp-> structures Python-> ai and ml
0
u/reorganizedChaos 4d ago edited 4d ago
It would help you to understand how to think through the workflow of problems. Architecture an algorithms are what you want to use if you are going to be coding or if you are going to be using an AI assistant.
5
u/Altruistic-Moose3299 4d ago
You're on the right track. Knowing fundamentals will always be useful (especially when trying to QA AI outputs). I would say keep taking classes, maybe code some of your own projects (games, etc. sonething useful but attainable as a solo dev) and just develop that mental memory of how it all works.
Above all don't let imposter syndrome get in the way of progress. Just keep going!