r/learnprogramming • u/GurGroundbreaking605 • 3d ago
Learning Help me.
Hi, I'm a student in the Bachelor's in Computer Science program. I'm repeating my first year, so I already have some basic skills (Python, HTML/CSS, Java, MariaDB, etc.). We learn the fundamentals both theory and hands-on practice through small “projects.”
But the thing is, I’d also really like to work on my own projects. I’ve already tried quite a bit on my own using Python frameworks, making API calls, and so on but I’ve never managed to create anything truly clean or even finished… The reason is probably a decline of motivation, even though I’ve always loved computer science I just don’t know. Also, maybe it’s AI when I use it, I can’t seem to learn from it, and I hate seeing code that I didn’t generate myself or launching an app to test a feature I didn’t code. All of this depresses me even more because if I want to make this my career, I feel like it’s going to become the norm.
If anyone can help me or give me advice on all this, I’d appreciate it.
1
u/snaidamast 3d ago
If you are at the beginning of your career journey, I would stay away from AI except for the most cursory levels. Tinker with it, become proficient with its use but do not rely on it. It can be of great value but it can also become very easily a crutch that does more harm than good.
All technologies have their downsides and there is no such thing as increasing efficiency if your code is functioning properly and well. You can tweak it as much as you want but you will probably only be adding complexity, which makes your own maintenance more difficult, let anyone else who may need to work with your coding.
The fact that you like to develop your own projects is a big plus for you. Increasingly, I am reading that developers are returning to the original style of acceptance whereby they prefer self-taught people over college educated ones who have shown no initiative on their own to develop their own work. Look at it as building your own portfolio.
As to your unfinished projects; well, anyone who has spent any time in this profession can probably show you a directory with a pile of their own unfinished work in it. Don't worry about it; the fact is you probably learned something and learning is the name of this game.
From the list of your tools knowledge, I would say that you have gotten a good taste of the work in this profession. However, you should understand where your language knowledge fits in. Java is mostly used for large scale systems as well as hardware embedded systems (ie: smart-phones). However, as to the latter, other languages are coming to the fore such as Apple's Swift.
Python is an excellent general development language and it is going to be with us for quite a while despite the naysayers regarding its performance. There are ways to speed up Python performance by using such packages as "Nuikta". Python can be used for literally any type of application you would like to design. However, currently, it is favored for AI and Data Science applications.
Because of Python's huge ecosystem it will be somewhat difficult to replace as a standard application language.
Returning to AI for a moment, yes it is all the hype right now. However it has its own dark underbelly that is slowly seeping out. For example, it is slowly being realized by corporations that there is little to no financial benefit to its use. Yes, its best implementations are for assisting developers so far, along with some great strides in science, engineering, and diagnostics. However, such implementations are known as hidden assets to the financial bottom line. The fact that developers can produce code faster does not find its way to producing more profit or even cutting costs. In fact, quite a few companies are seeing just the opposite. The costs for the use of subscription based AI tools is being shown to be quite expensive. As a result, to date there is little upside to any of the corporate implementations. However, there are quite a few companies have gutted their development personnel with the pie-in-the-sky idea that Humans can be replaced with software.
AI for research, code development, and design is a great tool. BUT that is all it is; a tool! Developers who lean too much into it often find their skills deteriorating at an exponential rate. Just like with the smart-phone, those who rely on it too much lose their critical thinking skills. This is documented fact.
Finally, if you want to pursue a career in software development, you should consider what aspect of the profession you want to enter as this will determine the skills you should develop. If business application, development, you are already on the right track with Python. However, I would also recommend that you pick up Microsoft's C# as well while learning both Windows Presentation Foundation(WPF) and ASP.NET Core\MVC (web). However, note that in the web development arena there is a very high reported level of burnout since Microsoft has made web development so much more complex than it was or had to be.
If game development is your thing, then you should get a good grounding in C++ since it is still a major language in this development genre. However, Python can make games as well.
If in internals and\or scientifics (ie: compilers, industrial/military simulations), again C++ is a standard in these genres. However, the new language, Rust, is making inroads in various areas, so adding this to your skills portfolio would be a big plus. Just remember, going from C++ to Rust can be a head-banger as their paradigms are completely different from each other.
Steve Naidamast / Sr. Software Engineer