3 ms·
> Seriously, I'll copy and paste stuff and it just won't run or it'll give an error on Windows, every single time. I've had this as well, in part it's because
by mettamage 6y ago
> Seriously, I'll copy and paste stuff and it just won't run or it'll give an error on Windows, every single time.
I've had this as well, in part it's because I don't know PowerShell / CMD that well. I'd go for Mac, I did it and never looked back. Buy the new M1 Mac Mini even, if you have the spare money.
> I'm not sure if my brain is wired for it,
I've thought about this question as my brain partially isn't and learned a thing or two on how to overcome it.
My issues:
1. Being detail oriented isn't my strong suit.
2. For a long time I wasn't able to grok it.
3. I have hard time visualizing code.
My solutions:
1. Use all kinds of tools that will kill the detail. Simple things like syntax highlighers and linters are a given. The most bang for buck was when I learned how to use a debugger, that was almost 10 years ago.
2. Follow a computer systems course like NAND2Tetris and after that hack computers at hackthebox.eu (especially the x86-64 assembly challenges). By understanding the internals of how computers work at a systems level, you essentially are capable of grokking a lot more. Take a compilers course while you're at it, I failed mine, but learned a lot from it anyway that helped to grok more stuff.
3. Debuggers help here as well, practicing pure math helps (I'm not good at that either) and simply doing data structure and algorithm exercises help.
---
I've learned over time that making a statement like "my brain isn't wired for it" isn't helping. In part this is because it isn't true, what I was lacking was a certain perspective that comes quicker to some people. For me, it took some time, but now I have it :)
- wrycoder 6y agoNand2Tetris is really great, but you have to be a reasonably accomplished programmer before you take it on.
- mettamage 6y agoI disagree here. Being able to use gdb makes things easier. I had 2 programming courses under my belt after taking a computer systems course. People make it more difficult in their minds than it is. The key tricks being: one step at a time, use a debugger and google everyday assembly instruction that you encounter. I’ll give you this: studying computer systems made me a better programmer.
- wrycoder 6y agoLate reply, but gdb wouldn’t be used in nand2tetris. Their online grading system accepts only a couple of high level languages. I used Python to write the assembler and compilers. What I was trying to say in my previous comment was that one would not want to be a raw beginner when starting nand2tetris. One would need to be thoroughly familiar with basic Python data structures. I used lists, dicts, and a class I wrote to handle the AST nodes. I’d recommend nand2tetris before taking a full compiler course. We’re agreed that low level understanding is very helpful. And, it’s interesting.
- cammikebrown 6y agoYou're right about the last bit, I'm really frustrated by people who say "Math isn't for me!" because for me, I love math, as long as I have a good teacher. If I have a bad teacher, though, which isn't uncommon, it's a nightmare. I can't learn higher-level math when it's just a series of proof, corollary, lemma, whatever, without any motivation. I have trouble picking what things I want to study with CS, because it's all interesting. Too much breadth, not enough depth. I still haven't figured what's best for me. I probably have ADHD but haven't taken any medicine for it; maybe that'd help. I trip over the details and I know I'll get it if I keep at it but I have to keep looking up syntax and it drives me crazy. I've liked Python because of the simplicity. But then I want to learn the nitty gritty of architecture and systems programming, and people tell me not to waste my time and focus on the higher-level stuff.