Alle 16 Kommentare

[–]Obvious-Card-8847 19 Punkte20 Punkte  (0 Kinder)

I'm a reverse engineer. My perspective on programming now as compared to a decade ago is very different. Every CS concept is some variation or combination of very basic, material, concrete, observable logical units and algorithms. Which is to say something like a virtual machine is not black magic. It is just primitives arranged in a specific manner. It's swapping a function name for an enum, variables with registers, control flow with a dispatch table, etc.

If I could go back and do it more efficiently? I'd really work on getting the fundamentals down absolutely solid. Because at this point my ability to decompose intimidating or complex software systems isn't because I'm a wizard. It's because nothing is magic to me anymore.

[–]NumberInfinite2068 8 Punkte9 Punkte  (2 Kinder)

Ignoring the job market, then I'd get more into research computing, Inferno, Plan 9, Oberon, maybe Smalltalk and Lisp. Really *get* computing beyond whatever web framework sounds cool today.

[–]Charming-Wind-5073 2 Punkte3 Punkte  (0 Kinder)

just leaving a message to come back later, this interests me

[–]Lumpy_Pick_421 0 Punkte1 Punkt  (0 Kinder)

Surround yourself with smart people and be teachable.

[–]aanzeijar 10 Punkte11 Punkte  (0 Kinder)

First thing would be to grow up. The idea that all programmers on the planet are ordered on a linear skill/intelligence grade is naive at best. The idea that you can come swoop in and Son Goku your way to the top is even more ridiculous.

Then: ignoring work life balance is a quick way to burnout in your thirties, so whatever the way is, this isn't it.

After that, it gets more complicated, but I always liked the Jargon File guide to becoming a hacker. It's a general guideline to the alignment that will help you on your journey.

[–]mc_pm 2 Punkte3 Punkte  (2 Kinder)

I would alternate one year doing college classes, one year working as a programmer (in a different field each time).

The best engineers I know have strong college background (not grades, but demonstrating actual interest and development), along with lots of weird ass work experience.

[–]dmazzoni 2 Punkte3 Punkte  (1 Kind)

You can get that by going to UWaterloo - after your first year, you do an internship every other term. They have incredible success in placing their students in good internships.

[–]mc_pm 0 Punkte1 Punkt  (0 Kinder)

I've hired some of them :)

[–]bonnth80 0 Punkte1 Punkt  (0 Kinder)

I would read a mountain of books. That's how I've always best absorbed information. Don't take that as advice. Everyone learns differently.

[–]aqua_regis 0 Punkte1 Punkt  (1 Kind)

College would at utmost lay a structured foundation, but it wouldn't make you a skilled programmer. You would always need to do the majority of work and research on your own.

The only three advantages colleges/Universities have are: structured, timed, and a proper certification (which, currently is one of the key factors for even getting considered for jobs).

The actual covered topics can all, 100%, learnt by oneself without a degree. There even are structured paths replicating the curricula of colleges: OSSU Computer Science and Teach Yourself CS, yet, again, neither of these will make you a skilled, competent programmer.

Practice coupled with theory is what makes a skilled programmer. It should be somewhere between 70 to 80% practice and the rest theory. In the very beginning it will be more skewed towards theory, and later shift towards more practice.

The FAQ here (as well as countless posts) have plenty excellent recommended learning resources.

[–]Ormek_II 0 Punkte1 Punkt  (0 Kinder)

University to me also provided the feedback and exchange required to reflect on everything learned. As Derek Muller (veritasium) put it: the class is the best way to learn for a social animal like humans.

If we split between skilled programmer and skilled software engineer maybe being a master of the what is enough for a programmer, but for a skilled engineer the why is a necessity.

[–]TheCrimsonMustache 0 Punkte1 Punkt  (0 Kinder)

Osmosis.

[–]Ormek_II 0 Punkte1 Punkt  (0 Kinder)

I would Look for teachers to learn!!

To become skilled I need to train, so I would join interesting projects, so I get experience with new frameworks and technologies.

I expect a skilled programmer to see an efficient problem solution quickly, but also always know the perfect tools and technologies to implement it quickly.

[–]nelsonsilva_dev 0 Punkte1 Punkt  (0 Kinder)

Pick something that has to keep working. Most learning stalls because projects get abandoned at the fun stage. The parts that teach you are the boring ones, migrations, a bug report from someone using it wrong, changing something you wrote two years ago without breaking it.

[–]roland303 0 Punkte1 Punkt  (1 Kind)

Read about philosophy, why 2+2=4? do numbers describe reality? I say yes. read about number theory

read about math, watch this maybe for key words to research https://www.youtube.com/watch?v=iyux-TVToRU

read about physics, a brief history of time was a great movie, but its old now, maybe read the wiki summary instead https://en.wikipedia.org/wiki/A_Brief_History_of_Time, you wont need much of this

read about the history of computation, this guy again, more key words to research https://www.youtube.com/watch?v=w_UfcKuCja8

Do https://www.nand2tetris.org/

then you might be ready, to Teach Yourself Programming in Ten Years

years after making your own lisp compiler, maybe the job market will perk up, the 2038 issue is right around the corner.

[–]mollusca96 0 Punkte1 Punkt  (0 Kinder)

the math video is literally just calculus