How to learn languages past syntax / college?
Posted by Legal-Assumption-841@reddit | learnprogramming | View on Reddit | 12 comments
I have recently graduated high school where I did duel enrollement, and so, I also have my associate in computer science. I have "learned" many languages (javascript, python, C++, C#, dart, sql, & java) but all I know is syntax. I know some OOP principals and understand all the core programming concepts (i.e. loops, conditions, functions, classes, etc...) but I feel like school isn't helping me be a better programmer in these languages. For each language class I am taught the same set of basic programming principals over and over again without ever being told WHY this language is better / special. I've memorized the syntax of a function in 6 languages but cant answer why python over java or vice versa given an application.
I have worked for the state of maryland interning for one year now, and all I do is web dev, which says simple: Add button here, change color there, etc...
I understand that for the most part, many of these languages can solve the same applications. But I would like to learn the lower level of them: how they run, whats special, etc...
Or learn more about the global ecosystem for them all. I understand the standard / common java packages taught in college but never was taught how to use java spring boot or run API's with java.
this whole rant is to ask for practical programming, which resources are you using outside of academia since I believe at this point, continuing computer science would be a waste (My friend already has his B.S. in comp sci and says the classes still only teach very basic electives or non practicals or are more theory than practical)
TL;DR: what resources did you use to teach yourself real-world programming and not syntax or over-the-top theory?
theliquidvapour@reddit
Yeah, I think you have hit the point where learning another language is not really the thing that moves you forward much.
Once you know loops, functions, classes, conditions, and basic syntax, doing the same beginner exercises in another language has diminishing returns.
The next step is not really “learn more syntax”.
It is learning how software is put together.
Instead of asking “Python or Java?”, I would usually ask:
What kind of system am I building?
If it is a quick automation script, Python is probably a good fit.
If it is a backend service in a larger company, Java or C# may make more sense.
If it is browser UI, JavaScript or TypeScript.
If it is a mobile app, Dart can make sense if you are using Flutter.
The language matters, but the ecosystem and deployment model often matter more.
What I would do is pick one stack and build one small end-to-end system.
Not a massive portfolio project. Just something real-ish that has:
That kind of project will teach you much more than writing the same console app in six different languages.
Whatever language you choose, I would use the standard, boring web framework for that ecosystem. The kind of framework real teams actually use, not the shiny thing of the week.
The goal is not to master every framework. The goal is to understand what real software needs around the code: data, users, errors, security, deployment, observability, and maintainability.
I’m currently putting together material around this exact gap: moving from syntax and coursework into real-world software development.
I’d be genuinely interested to know which bit feels most missing for you right now: choosing a stack, building an API, using databases, deployment, or understanding how all the pieces fit together.
theliquidvapour@reddit
...oh and make sure you push it out somewhere that is publicly accessable...
BionicVnB@reddit
Building things I like. It doesn't matter if it's useful or not. The important thing is me having fun.
Virtual_Sample6951@reddit
building projects is definitely the way but i think you also need to dive into documentation and real codebases 💀
like for understanding why java vs python - try building same simple API in both and you'll feel the difference. java's gonna be more verbose but way more structured, python will be faster to write but might get messy in bigger projects. when you're actually dealing with performance bottlenecks or team collaboration you start seeing why certain tools exist
i'd suggest picking one language you actually enjoy and go deep instead of jumping around. find some open source projects in that language and just read through their code, even if you don't understand everything at first. github is basically free education if you know how to use it 🔥
also your internship sounds pretty basic but web dev can actually teach you a lot about real architecture if you push beyond just "change button color" - try asking about the backend, database design, deployment process etc
grantrules@reddit
Yup. I think of programming language as a big pile of tools. Maybe you like building birdhouses, so you learn how to use those tools to build birdhouses. Then someone's like, "hey can you make me a chair?" You say sure, because even though you haven't made a chair before, you know how to measure, cut, drill, screw.. and then you can reason or research your way through issues you haven't run into.. like holding a human's weight instead of a bird's.
Designer-Flounder948@reddit
Stop jumping languages. Go deep into one, build projects, read real codebases, and deploy apps. That’s how your skills become runable and practical.
Comprehensive_Mud803@reddit
Practice.
_N-iX_@reddit
CS programs often teach syntax, not engineering. The gap you’re feeling is normal. The next step is shifting focus from “learning languages” to “building systems”: APIs, databases, frameworks, deployment, etc. Once you build a few real projects (e.g., a full backend with auth + DB), the “why this language” question starts making much more sense.
Several_Willow_1336@reddit
I’m not a professional engineer per se, but I studied compsci and learnt programming from one of my mentors who was a principal at a big tech.
Don’t jump straight into projects if you don’t have a solid programming foundation in at least one language. You should only start building once you’ve learned the basics. You’ve already done that, so now choose something you want to accomplish and start building it. You’ll feel resistance and friction along the way, that’s exactly what you want, because it means your brain is learning new skills.
It also helps to spend some time reading open‑source code on GitHub to get exposure to how engineering works at a collaborative level. By the way, worth learning some basic software engineering and IT skills like docker, version control, CI/CD, software architecture etc.
I know some people won’t agree with this, but I find data structures and algorithms helpful , because I think they’re some kinda “shortcut” for reducing friction caused by syntax and familiarity with the language itself. That frees up your brain to focus on solving higher level problems, which is what most real‑world projects are really about.
SleepMage@reddit
They teach you the theory so you can learn how to apply it when you build! I suggest picking a language you like and trying to figure out how to build a project in it. No need for it to be prefect or big, keep it simple and practical :).
Also, READ. I can't stress this enough, whether it's documentation or books, READ!! I think some good books to start with if are:
- The Pragmatic Programmer
- The C Programming Language
- Clean Code
Deviate_Lulz@reddit
I never went to school for programming. Learned it in my own through project based learning. Just make stuff. My projects were mostly C/C++ /Java and Python.
sockcman@reddit
I learned everything beyond school by working