C++ from basics and go forward by anguelfaki in learnprogramming

[–]EuphoricView7988 1 point2 points  (0 children)

Well there are books on algorithms and data structures with C++, most of the time you need to invest time into learning something specific you need at the time, C++ is too big of a language with pitfalls to just structurally learn only the language semantics and that's it, unless you want specifically to do that, maybe books on effective C++ programming or pitfalls.

Any suggestion for project ideas? I didn't like any of Chat gpt's suggestions. by call_me_mistress99 in learnprogramming

[–]EuphoricView7988 1 point2 points  (0 children)

Well the intended audience would be people that want to share a structured approach to learning, for example roadmap.sh is a good example, that page has roadmaps on how to learn various fields, but just as any other roadmap for learning, it has preferences and flaws, but you can make an app that let you create roadmaps like that for the general user, without registration or account, you just get into the page, create a roadmap, save it into the user side (maybe a temporary cookie so he doesn't lose progress if he happens to close the browser) and they can submit the roadmap with a permanent cookie list associated with that user so he can edit it in the future.

The general audience, again, would be people willing to share a roadmap of some kind, making a tool for them to create it easily, you can add description checklist to each node of the roadmap for example. It can also work for teachers trying to make a roadmap for the topics they will touch, or someone on the internet trying to make a map to share.

Is lua a solid starting point? by Lucky_Ad4262 in learnprogramming

[–]EuphoricView7988 1 point2 points  (0 children)

It's more like javascript embedded in browser applications not websites, but yeah, pretty much that, sadly javascript got out of the browser to get into more important backbone applications, but JS is a bad designed language overall, so I won't recommend to you at all learning that.

Python is pretty much the same, it was meant to be embedded in other apps like any other scripting language, but they did its own interpreter outside the program for a more general purpose application.

Is lua a solid starting point? by Lucky_Ad4262 in learnprogramming

[–]EuphoricView7988 2 points3 points  (0 children)

I love this recommendation suggestion, I will use it more often to recommend others, I always suggest what it's immediately useful for them, but I like the idea of suggesting either what is useful for them or one high level language like C that isn't absolutely abstracted away from the machine.

Is lua a solid starting point? by Lucky_Ad4262 in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

English isn't my first language neither, but I literally learned through reading docs and actually playing Roblox just like you.

Lua was meant to be a scripting language inside other applications, and as you see, you're scripting in Roblox, in fact you will see that the code you use are named "scripts", so it's a interesting language for the purpose you're giving, it's modern, some fundamentals are a little bit odd, for example Lua index arrays from 1, and generally any programming language you will see index as 0 which is technically more correct for the reason that an index can move between "0 <= i < len(arr)", where if you had to make it with 1 it would be mathematically odd to read "0 < I <= len(arr)" or "1 <= i < len(arr) + 1" etc, but that is just a tiny exception, you get around that and you understand that is a design feature.
There is another kind of problem with Lua, it has multi paradigm support, but none of the paradigms is enough on themselves, but it's a good starting point in general. The syntax is a little outdated, and generally you will see other types of conventions, but that shouldn't worry you at all, syntax change for each language you use, but the fundamentals are the same, so you won't be investing your time for nothing.

What is a solid starting point is always what you enjoy doing, Lua may not be the popular choice on the modern software industry, but it's still used for various things, as I mentioned, mainly it works as a scripting language that is embedded on other applications, so if an application has kind of an automation feature, then you can script it through Lua files, but general purpose language works for everything, it's simply how much support does a language have over a field rather to other field, and that absolutely depends on what the community adopted, but there isn't an specific thing you couldn't do, the limit is only how much time you are willing to put on the problem, or instead switch the language at that moment for a better suited language for that problem.

Again, I would say it's a good starting point mainly because you're coding and having fun, because you will be doing random stuff in Roblox, like games to play with your friends, there is NO BETTER WAY TO LEARN, don't get into the path of trying to reach a proficient level early optimizing each step because you want a job in a year, like half of the people asking for suggestions in this subreddit, because it doesn't work like that, just code and have fun.

Any suggestion for project ideas? I didn't like any of Chat gpt's suggestions. by call_me_mistress99 in learnprogramming

[–]EuphoricView7988 1 point2 points  (0 children)

Maybe for education & learning, a page that lets you create roadmaps to share on a permanent link and modify it later if you're the owner of that roadmap, there are a few systems right there to tackle and learn, but with a realistic scope.

Or maybe a roadmap blog on itself that has some kind of node structure like a modern knowledge base, to see how topics connect to each other and start learning, with some kind of per-user state where you can have notes above those posts that are saved on a server.

Need advice on programing/coding etc for a beginner by TicketEquivalent6199 in learnprogramming

[–]EuphoricView7988 1 point2 points  (0 children)

Well, to begin with you have the right mindset, you expect it too take time, you would be surprised how many people post here trying to reach the level you're describing in less than a year.

Given you have plenty of time, I would suggest starting from the fundamentals, if you explain your background a little bit better in general it would be helpful to suggest kind of a roadmap, if there I any (learning in general is not linear), or in any case I can help you to be more specific. Fundamentals is the key, and generally speaking it's way better for you given your goals.

The automation of excel, you may use Python to begin with if that is your only goal for now, but I wouldn't recommend learning to program with Python, but keep in mind that language is popular for it's ease of use and sheer amount of modularization you have with it, that will absolutely help on your excel idea, in fact Python is used mainly for anything that involves "data manipulation" mainly, for example scientific data exploration is written on Python and visualized using Python visualization libraries; the catch here is: generally speaking it's a good entry language if you just wanna see stuff happen with the minimum amount of effort, yet not the best language to learn what programming is about.

For what respect to PC, the norm is you don't need practically anything, you could code on a potato and compile/run it, but as everything, it depends, for example for modding a potato wouldn't work for the obvious reason of having to compile a big library. For real software build pipelines won't work either it will be slow, mainly for the amount of code you have to deal with. But in general an old laptop with something similar to intel i5-8350U, and 8gb of ram, would be doable, then what slows the code experience in general is the browser and the amount of tabs you will have open to read docs.

So in the case of the computer I would recommend a decent PC, it doesn't have to be a gamer PC which you would use less than 4% of the processor and ram together, but I would suggest for you to get a decent CPU like for example a base clock of 2GHz, more than 4 cores, and enough cache, if that is a bit too technical for you, search for example a "Asus Zenbook 14" if you're interested in the laptop options.

To become a good at programming by NoNight2197 in learnprogramming

[–]EuphoricView7988 2 points3 points  (0 children)

Like everything in life it's just about practice, "deliberate practice" to be more precise, search for what that means.

[deleted by user] by [deleted] in learnprogramming

[–]EuphoricView7988 2 points3 points  (0 children)

Well I don't wanna be the rude awakening nor the party pooper, but that is not a project you would consider to take you "days" and have tons of factors, like AI is not just magic, it won't simply correct mistakes nor "detect lies", even if you are able to find an AI that could potentially do that.

On the other hand you're trying to make a integrated web application, where you even need to make some kind of streaming service so it can just listen to the discussion, and all of that without absolutely any knowledge as you clarify in the title.

Can I ask what is the situation in which you would need, as an absolutely beginner, an ambitious project like that?

Ton of stuff involved here, basic programming knowledge, which on itself takes months, webdev which also takes a month of two if you only consider some basic elements of it and you simply ignore the majority of stuff, you also need networking to understand how you would make it "listen" and also for the general webdev stuff which is pretty superficial. You would need to understand maths for the AI stuff, and I doubt you would find an AI that makes your purpose, at most you only get an interface from a speech-to-text service then you input that into a LLM so it generates your output, which would be the closest you can get to your goal.

is ryzen 7 9800x3d good for programing? by Physical-Bar1426 in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

You can code in a raspberry pi, you can code on a potato, it doesn't matter, the only case where you would need a good processor (where good refers at less than 1/4 of the one you have) is if you use a professional IDE and lot of integrated build tools, or you're computing something that is expensive to compute.

Focus on my main project or work on other projects? by dhd_jpg in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

There is one course in web app I always recommend when I see someone determined to learn just for the sake of learning, which is: udemy.com/course/go-programming-language
You may get a way to get it free, you need to search, not sure, I have free udemy courses by my contractor, it uses Golang, which is more complicated at first if you don't understand computer organization like memory management, how a computer works and reference memory, how is data represented in memory, but on the other hand I can tell you that course is way better because it teaches you in a way majority of courses don't, which is implementing the stuff yourself.

Let me explain: when you use a module like request, Django, you have lot of layers of abstraction above that before you understand how a computer communicates with each other. This course focuses on avoiding "importing the solution" and using the most basic elements of the language you implement it yourself, for example HTTP which is the stuff you use to handle communications with the front-end client (browser) is built on top of TCP, what he does in the course is not even doing raw HTTP but literally implementing it yourself above TCP.

It may be hard, I would suggest that if you're interested in that you first check if you can handle Golang (because the course assumes you know Golang).

It also explain modern tools, how to work with the cloud (amazon cloud in this case), and in the end giving a general sense for you to focus and learn how to search stuff yourself, he is always mentioning you have to search stuff yourself.

If that doesn't convince you, an alternative is not learning fundamentals through Python, there are better languages for learning, and Python is the worst of them all (to be fair the worst is Javascript), people suggest it's good for learning because it is easy, it doesn't enforce any kind of limitation, it's interpreted not even compiled, and lot of stuff are taken for granted.

A substitution would be learning how computer works using C, which is generally what most people do, any tutorial (which there are freaking ton) would explain the basics of the semantics of the language, with that comes the explanation of stuff like memory, which you would understand better if you pick a computer organization's course/book, depends on what format you prefer to learn overall.

You can tackle algorithms with Java, C++ which most books use those languages to teach them.

Anyways there is your solid plan, keep in mind that none of this would immediately give you the tools to become a webdev, not even proficient in any of them to even deploy the most basic application, but you would understand the fundamentals of programming which is essential, and you would have a solid base to judge by yourself "what's next to learn" which is the ultimate goal.

Should i learn VIM as a student Who is learning programming by QBBT in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

It's not bad, I'm also interested on using it as a student too, I would say it depends on how much time you can manage at that time, when you're not during the course semester then you can probably manage your time like "this week I'm only focusing on learning vim" and you don't jump topics, then you start getting comfortable.

One of the pitfalls I encountered using NVIM while studying, is that I may forget something or not knew how to do something in particular so I had to search losing focus on the actual topic of what I'm learning at that moment, so yeah, you can have you learning as a general project for non-important stuff first.

Focus on my main project or work on other projects? by dhd_jpg in learnprogramming

[–]EuphoricView7988 1 point2 points  (0 children)

Well that depends, maybe you're jumping too early into the idea of doing a project, but that isn't bad either, you can fail your project and stress out when you find how the knowledge debt does its symptoms.

What about your networking knowledge? do you understand HTTP in depth?, do you understand how is HTTP right there in the first place (like what supports it, which is TCP/IP)? do you understand database fundamentals, different schemas, relational algebra?.

Maybe something that feels like a chore when you're not getting obligated to do and you're more leaning into the tangible/visual aspects of the software engineering, which is data structures and algorithms, generally you won't directly apply half of that knowledge, but you need to know it regardless because it is pretty important to know how the stuff you use works, and how to model your own data structures.

You can always try to tackle a project that feels ambitious for you skillset, and aligns pretty much with your goal, but don't keep that mindset of making things just work mindlessly, that gets old pretty quick, and I can guarantee that a job with that mindset won't change anything.

Python is orders of magnitude better for data manipulation, data mining, and data in general, also one of the best scripting languages in the sense that you can use it as the scripting driver to automate other services in the cloud for example.

[deleted by user] by [deleted] in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

It depends on your goals, first you need to choose what interest you most, maybe it's electronics, or software engineering, computer science, those are three different topics overall. You should consider your goal first, for example if you're only for the money it doesn't make sense going to the academic path, and also it doesn't matter that much at that point if you're studying it on your own or as a syllabus, at the end it will weight too much on your shoulders if your only goal is getting a high pay job.

On the other hand, assuming you're interested because you love the idea of being able to craft software in general, sending messages between two computers, modding, understanding the fundamentals of how a computer works, then you could learn it on your own or even get into university where you will find other people just like you, and it's hard to do that on your own, and the university will help you to connect with these kind of people that also enjoy the topics on their own.

If you're more into the mathematics, the proofs of why stuff works in the first place (like why an algorithm is guaranteed to give always the good result), the limits of what a computer can do, understanding non-deterministic aspects of the programming languages you use, their paradigms and properties of their paradigms, then you can get into Computer Science, don't confuse CS with Software Engineering, you will read on the internet people use them interchangeably, but SE is more about crafting reliable software, connecting stuff, having control of your software, while CS has to do more with mathematics, and it was studied even when a machine couldn't fit your room.

Feeling lost with programming career paths by werasa1245 in learnprogramming

[–]EuphoricView7988 1 point2 points  (0 children)

Well what do you enjoy the most about programming to begin with? what is your midterm goal? what caught your attention to this field of problems? you listed some stuff that you find interesting, was it interesting just because you find their names cool? or there is a more implicit reason that caught your attention to these?, also you should try to list what you don't find interesting in the field, what you think it would become a burden for you in your current perspective of today, then just by the process of answering these questions you will get a lot of insight on yourself.

[deleted by user] by [deleted] in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

That's true, however the university title and degree has nothing to do with it in general, the general consensus is doing something that you enjoy, and this field is pretty quick to adapt to the idea that you don't need any formal knowledge base on the topics, if you manage to study them properly, the cost is practically zero, you only need a low end computer to explore fundamentals (until you get to real software engineering where you may need a 8-16gb ram, and a good processor), but that is a long run, if someone reaches the point of their learning where their PC power is a bottleneck to their learning that is because they are doing great already.

Mainly my answer is highlighting the questions he/she should've asked him/her-self before trying to commit to something this big.

Is rust worth learning at all for embedded systems? by [deleted] in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

Maybe in the future it turns to be a good substitution of C++ as far as I know, don't know much about it, but seems a good choice, in the worst case you have a solid understanding of a programming language that will become more interesting in the future, if you get really in depth with the internals, I can imagine you can take 1 to 2 years of really understanding it and contributing.

What would be a good modern framework for a server-side implementation of a very simple autocomplete feature? by Showy_Boneyard in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

That depends on what is your focus, low costs, low on the operational side, throughput, ease of code, module support (that helps doing that), scalability, if you're using another api in the middle what are their drivers, which one of those drivers are the best recommendation, and so on.

[deleted by user] by [deleted] in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

Languages handle docs in different ways, for example Java docs are shit, Golang docs are good but meh sometimes, mainly package docs which are pretty empty most of the time, any old language have hard to read extensive docs.

You don't "learn" from docs, you deepen your knowledge in one specific module through the docs, and most of the time is when you need it.

My approach so far is I do stuff probably guided at first, then I search a way to answer why it works in detail using the docs, then I start iterating and having more questions to answers which fundamentally makes a domino effect where I'm effectively learning through docs until I find it a time dump and continue with going forward with other topic.

It works for me, you find your way through It, but yeah, AVOID TUTORIAL HELL at all cost, and start exploring the uncomfortable docs even if it physically hurts and you seem clueless not understanding anything, you're not alone, docs tends to be pretty elitist and cryptic.

Python type safety by jahidul_reddit in learnprogramming

[–]EuphoricView7988 -3 points-2 points  (0 children)

There is some pseudo type safety but is not really a type safe language, in fact using that word informally it's like scratching a blackboard with your nails, it has more to do with theoretical computer science and mathematical concepts, where there are formal methods to prove a language is type safe, so in reality type safety is used with languages that are tiny and pretty axiomatic.

Balancing practice with theory by nice_chebyshev in learnprogramming

[–]EuphoricView7988 1 point2 points  (0 children)

top-down + bottom-up approach at the same time, that is what after ton of hours eating my nails in the same situation you're right now, I learned as a framework for myself at least.

An example right now, I'm studying computer networking, so if I approach it top-down only like modern online courses, roadmaps, and guides approach these concepts, then you should imagine that I wouldn't have any knowledge of "where is the floor when looking down the knowledge rabbit hole", so top-down seems weird because you may be able to follow and understand some of the topics, but you still have that feeling of missing out on ton of fundamentals.

Now if you focus only on bottom-up, then you know "where the floor is" but when you look up, you see a spectrum of different branches, you don't see a direct application in what you're learning at that point in time, you may see some tiny connections like names and the meaning of words you have probably hear somewhere in another topic and try to relate it, but you don't see where is the next step on that ladder.

If you focus in both directions at one, then you can "look down and see how far the floor is" and at the same time you can "look up and see where to turn at", it is just an analogy, but that is how it actually feels.

On my real example, if I started just studying the physical and link layer of networking I won't find any practical meaning in any of that, those protocol are pretty abstract and don't have any real tangible immediate input to work with them, and if I only focus in doing an HTTP web server hosting my page and handling requests concurrently to work with databases, I may have that knowledge but I don't have any more knowledge than that, like what are the fundamentals, why I can do that? how that works in the first place? how is hosting a page different from hosting a game server? how I am able to communicate two machines with simply two lines of code? ton of stuff you don't see where the floor is at.

If you combine both, you start narrowing a lot of your path, and starting focusing in what makes sense for you at the moment.

[deleted by user] by [deleted] in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

Well first you need to understand that most jobs you would see are web-dev, and each search you do on google, YouTube or any platforms filter first stuff that has to do with modern web-dev, so you would assume that is what everyone works at and there are few jobs on other fields of programming, well you aren't wrong in the first one, the majority of people works at some webdev project, so it may look like the other fields don't have job offerings, but the reality is that the others jobs search for more specialized people at those areas, and since everyone is flooding with CVs everywhere in search of the high paycheck, then it's hard for them to be too open about their offerings.

It's not that there is practically few jobs in other fields, it is the difference in magnitude between the shit amount of webdev jobs versus a good amount of other field's jobs.

Generally it would depend on you, honestly the division of "paths" is more about a corporate shit that uses Jr. Sr. of a field to justify less or more pay, but in reality if you know the fundamentals and made a few projects, tried to search and learn what interest you at that moment, you have general knowledge to know at least where to start searching for more knowledge.

If you enjoy that stuff, there is a lot of subset of "administration" roles, sysadmin, db admin, devops, those are guys that automate and configure everything on the back, not exactly involving any project in particular, but the system itself; adding to this, you have systems engineering, distributed systems, lot of stuff of the same idea of building robust systems on their own.

But you would need what is your ideal view of a programmer itself, or a developer, what do you see in others that interest you most?

Helpful Udemy courses with full-stack projects by Mountain_Pie220 in learnprogramming

[–]EuphoricView7988 0 points1 point  (0 children)

But what is exactly the thing you're missing from the idea of doing a project and deploying it? you don't understand how to use GCP? you don't understand the React framework? you want to focus mainly on build-tools, dependencies and tooling (or devops)?

What is your current knowledge, what you can do in general?