So I have realised that I'm quite a shoddy programmer.

This is what happens when you learn from "Instant" online courses : You skip over the fundamentals.

So to remedy that I"m on a journey.

I am currently following a course of udemy:

###

Computer Science 101: Learn Computer Science to become a better Programmer and Software Engineer.
-------------------
The course basically teaches you what the Big(0) is and also teaches the various memory models like Arrays and Linked Lists (It's more of a close to the metal approach)

####

This course is helping me understand memory, after @design_RG exposed me to drum memory. I got fascinated with the way the register works and everything and now i want to first understand CompSci fundamentals before jumping into languages.

But the problem is that I feel Memory is only part of the equation.

The reason I decided to get into CompSci at 29 was because I was interested in Logic.

I wonder if anyone knows a good cheap online resource to understand the fundamentals of Algorithms.

As I've always known that these courses that teach the rocks of this craft always have the word Data Structures and Algorithms in them,

I have a course that covers Data Structures in a language agnostic way.

Anyone know of a similar cheap course that covers Algorithms too?? Does this even exist or is it a product of my imagination?

udemy.com/course/computer-scie

@tek @kornel @namark @raman @fahrni @mngrif @jump_spider @rodolpho @shibaprasad @Gomario @EdS @freemo

Follow

@Full_marx

To be fair the **vast** majority of programmers are shit. The sad part is that a large portion of them don't realize it. Those are the ones who are really doomed.

the very fact that you think you are a shoddy programmer, whether true or not, is already very promising.

@design_RG @tek @kornel @namark @raman @fahrni @mngrif @jump_spider @rodolpho @shibaprasad @Gomario @EdS

@freemo

Yes, I think Jeff said it well - the fist step in the road to improvement is to recognize there's a lot more to learn.

So don't despair, and be happy you have the curiosity to seek this knowledge. You will have a better understanding, do better work as a result of the learning you acquire.

The course you described above sounds excellent. I had programming courses ages ago, as part of my first year Engineering curriculum, but don't feel qualified to point the way into a scientific approach to education deeper into computer science.

I agree fully with your insight that the concepts should come before learning a specific language; or be taught along with the language, as a way to practice and produce test code.

Glad to see you engaging in this fascinating journey, Karl. Go for it! :thumbsup_hmn_h2:

@Full_marx @tek @kornel @namark @raman @fahrni @mngrif @jump_spider @rodolpho @shibaprasad @Gomario @EdS

@design_RG
Depends on what mastery we're talking about. Mastering computer science or informatics, that's probably a PhD level pursuit; programming is just a set of tools for informatics, and different languages are like variations of medical tools or chemicals. You can master a specific tool fairly easily given enough time, but you'll be limited by how every problem looks like a nail unless you learn how different tools can be used together. That pursuit is never ending.

@freemo @Full_marx

I don’t think it’s bleak. I’ve been doing this type of work for about 30 years and I still have plenty to learn. I’m OK enough to have worked on some amazing software. If you’re interested in programming computers just keep working at it. Ask questions. 30 years ago I was lost. Now I could manage a team through a project and deliver a great piece of software.

@design_RG @freemo @jump_spider @Full_marx @tek @kornel @namark @raman @mngrif @rodolpho @shibaprasad @Gomario @EdS

@design_RG

This issue is that 90% of people who get into programming never love it. Its a job they pick because they need to pick a job and they think it will make money. Thats all. So they are doomed to fail from the get go.

@jump_spider @Full_marx @tek @kornel @namark @raman @fahrni @mngrif @rodolpho @shibaprasad @Gomario @EdS

@freemo
That makes sense, and it's a pity. It can be a satisfying occupation, especially if the person is motivated by the problem solving, new challenges and constant learning.

But it isn't for everyone. I have seen some of the programming challenges posted here by one user, and imagine that an average student in high school would not react well to anything needing that much focus, and understanding of abstract data structures. (in case we proposed simpler, but similar challenges to them)

I learned the basics of programming when all we had was pencil and paper, maybe a blackboard, to jot ideas and develop it. When you had enough laid out to start creating the program, you would write it, line by line, and parse thru to see if it made sense.

Processing it came later, not instantly by pressing a key to try to run/compile it.

Teaching programming in high school, students had a hard time tackling a similar challenge - writing a small routine on paper only, and verifying that it would likely work. Was surprising to me, but most of them felt it was hard.

@jump_spider @Full_marx @tek @kornel @namark @raman @fahrni @mngrif @rodolpho @shibaprasad @Gomario @EdS

@freemo @design_RG

I don't think that you need to love a job to do it well. You might not be exceptional, but you should be able to do good. I think the problem software industry has is that, with proprietary software being the norm, there is no public eye on the mess that people make, which result in lack of standards and discipline, even in the free software islands.

@Full_marx

@Full_marx Which reminds me, if you find time you should check out any talks or courses by Alexander Stepanov(should be free on youtube). You can gloss over the c++ parts as it's not for beginners, but the rest is fun to listen to, in my opinion.

@freemo @design_RG

@freemo @Full_marx
Forgot to add that the rest of us, excluding Jeff here, just have to get by ~

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.