4 ms·
I think Python and C are simply a must, whatever the language you use in your daily job and whatever else you might want to learn. You cannot seriously call you
by Koshkin 7y ago
I think Python and C are simply a must, whatever the language you use in your daily job and whatever else you might want to learn. You cannot seriously call yourself a programmer if you are afraid of C, and Python is too useful as an ad-hoc tool to be ignored.
- goto11 7y agoI totally disagree with gate-keeping like "you are not a serious programmer if you don't know C". You are a serious programmer if you program stuff that works and achieves it purpose.
- tomp 7y agoIf you don't understand the concepts of C - things like pointers - then you don't actually know how computers work and how programming languages are implemented (i.e. how the JavaScript you write actually happens) so, yeah, you're probably not a serious programmer. Copy-paste code from Stack Overflow? Sure. Debug a complex problem or optimize a piece of code? Unlikely.
- jcranmer 7y agoUnsafe Rust is at least as close to the hardware as C is, if not somewhat closer (C doesn't have 8- or 16-bit arithmetic operations, and I believe unsafe Rust doesn't have the strict aliasing rules of C). Arguing that you specifically have to learn C to understand hardware is the gatekeeping I dislike the most, especially because it turns out that C itself can have a pretty bad view of hardware.
- tomp 7y agoSure, which is why I wrote understand not know. I doubt many Rust programmers would have issues writing C (basically just forget about ownership and write plain functions) unlike say Python or JavaScript (or even Java) programmers.
- AzzieElbab 7y agoI started my career as C dev, working on driver level software. These days I want to stay as far away from hardware as possible. Hardware is horrible, bugs, bugs, bugs, and more bugs.
- goto11 7y agoIf you don't understand assembler then you don't understand how a computer works. C is a higher level language which just happen to be more primitive than most. Knowing C is fine, but thinking C is somehow "the real world" is dangerous, since then you don't understand that the abstractions in C (like pointers or the stack) are just design choices with certain trade-off and that alternatives are possible. Are you suggesting someone who knows say Haskell but not C is not able to debug their own programs?
- tomp 7y agoSure, I agree. I just think the impact is less, since e.g. computers are optimized for C (there's special instructions for manipulating C-like stack). I think of more importance is the concept of registers, which C mostly abstracts away - definitely useful to know, but probably less performance impact than pointers vs. objects.
- dunefox 7y ago> Copy-paste code from Stack Overflow? Sure. Debug a complex problem or optimize a piece of code? Unlikely. What a ridiculous thing to say. One doesn't need to know how programming languages are implemented or 'how pointers work' or even know C in order to be a proficient programmer. This is just nonsensical gatekeeping.
- a1369209993 7y ago> If you don't understand the concepts of C - things like pointers - then [...] you're probably not a serious programmer. This is true, but doesn't actually require knowing (or even having heard of) C specifically.
- pjmlp 7y agoNice to know that those early years doing Z80, 8086, 68000 and Turbo Pascal TSRs and demos wasn't programming.
- badsectoracula 7y agoKoshkin wrote "if you are afraid of C" and IMO if you are writing assembly or Turbo Pascal you wont (or at least, shouldn't) be afraid of C. Turbo Pascal is pretty much at the same "level" as C with slightly more stronger typing and a few extra bells and whistles, but things that cause people to be afraid of C, like pointers and manual memory management, are still there.
- pjmlp 7y agoYeah, I commented on purpose, because that is what people should learn, pointers and manual memory management concepts, the language to learn them should be secondary. Those that learn to abstract concepts from how they get expressed on the language of the jour, are better prepared for change in this fashion industry. I also never understood what it means being afraid of programming languages.
- deleted 7y ago[deleted]
- nv-vn 7y ago> I think Python and C are simply a must, whatever the language you use in your daily job and whatever else you might want to learn. You cannot seriously call yourself a programmer if you are afraid of C, and Python is too useful as an ad-hoc tool to be ignored. I haven't ever found Python to be useful since I started program. Perl, Bash, Ruby, JavaScript, etc. work equally well for one off scripts and Haskell works much better for mathematical calculations. For large programs I would never consider using Python. Maybe if I did machine learning my opinion would be different.