Top 20 replies by Programmers when their programs don't work
20. "That's weird..."
19. "It's never done that before."
18. "It worked yesterday."
17. "How is that possible?"
16. "It must be a hardware problem."
15. "What did you type in wrong to get it to crash?"
14. "There is something funky in your data."
13. "I haven't touched that module in weeks!"
12. "You must have the wrong version."
11. "It's just some unlucky coincidence."
10. "I can't test everything!"
9. "THIS can't be the source of THAT."
8. "It works, but it hasn't been tested."
7. "Somebody must have changed my code."
6. "Did you check for a virus on your system?"
5. "Even though it doesn't work, how does it feel?
4. "You can't use that version on your system."
3. "Why do you want to do it that way?"
2. "Where were you when the program blew up?"
And the Number One reply by programmers when their programs don't work:
1. "It works on my machine."
I would say there's not much reason to use mono anymore when Roslyn is open source and cross platform. Why use Mono when you can get the real thing?Mono! Unless you're learning Java...
Depends on what you're going for.
Just VS Code. There's always Mono
Java is a great starting language. It's not about the actual language but the concepts.
Exactly. Python is a good language too although I know almost nothing about it.
Really, the professor can do better than this for his intro-level students. S/he can set up a common Java dev environment for all their students to use via a distributed virtual machine image. Tools that help you do this (i.e. Vagrant) are pretty common nowadays.
Then again, learning how to do all of this setup stuff and understanding how to manage development/deployment environments and all that, is a valuable skill. Learning that might help avoid the scenario I described in my last post.
Just maybe not in an intro class.
There are few things more enlightening when learning to code than the first time you learn an assembly language. Don't treat it as something you don't need.I went through C++ procedural a year ago. This semester i have C++ object oriented AND ARM Cortex M microcontroller assembly to learn!!! FUCCCCCKKKK
![]()
Most CS programs I've looked at seem to give students shell accounts where they have the tools required for their basic classes available. gcc/g++, javac, gprolog, et al. I'm surprised that OP doesn't seem to have that.
Top 20 replies by Programmers when their programs don't work
20. "That's weird..."
19. "It's never done that before."
18. "It worked yesterday."
17. "How is that possible?"
16. "It must be a hardware problem."
15. "What did you type in wrong to get it to crash?"
14. "There is something funky in your data."
13. "I haven't touched that module in weeks!"
12. "You must have the wrong version."
11. "It's just some unlucky coincidence."
10. "I can't test everything!"
9. "THIS can't be the source of THAT."
8. "It works, but it hasn't been tested."
7. "Somebody must have changed my code."
6. "Did you check for a virus on your system?"
5. "Even though it doesn't work, how does it feel?
4. "You can't use that version on your system."
3. "Why do you want to do it that way?"
2. "Where were you when the program blew up?"
And the Number One reply by programmers when their programs don't work:
1. "It works on my machine."
I don't know why they are still teaching Java in introductory class.
Kinda weird to see all the hate for C++ on a gaming forum when games are primarily written in C++.... There's a reason they don't write them in Java, C#, etc.
Ehh... neither are that great to be honest. The only thing they are good for is getting people hands on with control flow and pass by reference vs pass by value.
Java has a pretty awful object system, and python has dynamic typing which is probably the most god awful feature to ever be popularized in computer science.
...wut.
Yes, but that reason has nothing to do with what works well when teaching people fundamentals.
I got just about every single one of these from students when I was TAing an operating systems class. Even #6, which just blew me away.Top 20 replies by Programmers when their programs don't work
.
It's not a super uncommon position. Dynamic typing requires a ton of (slow, performance-killing) work on the back end, potentially promotes sloppy programming, and makes it almost impossible to actually mathematically prove anything about program correctness; there's lots of things that make it sloppy compared to statically-typed languages.
Of course, since programming is actually much more about solving real problems efficiently than it is about technical concepts of correctness, the power and flexibility of dynamically-typed languages is actually incredibly useful. But it makes sense why people have a problem with it.
It seems uncommonly silly to me. Dynamic vs. static in almost all situations should come down to a matter of preference. I feel like someone who really thinks it's the worst thing ever also isn't knowledgeable enough about the compilation process to make a reasoned argument about type checking optimality. I mean, all this stuff is just a construct anyway. It's not like types exist at assembly level or lower.
if your math fundamentals are solid, should get easier
Even though math helps, I don't think it's a requirement. I think logic and process thinking is much more important than math when it comes to programming.
I could write pages about why. but the short of it is that oop is very hard to do well and most people simply don't understand it even after years of experience(me included). But even if you do, that doesn't mean using it will be advantageous to the project anyway.I'm relatively new to programming as a career, but why do you think this?
yeah, I'm not sure how I feel about it but I can understand that perspective.This sounds awesome. However, it'd be nearly useless for people that take intro programming courses to supplement another STEM degree, which is probably why most universities don't do this. But for people who actually want to learn programming/computer science, it sounds wonderful.
I could write pages about why. but the short of it is that oop is very hard to do well and most people simply don't understand it even after years of experience(me included). But even if you do, that doesn't mean using it will be advantageous to the project anyway.
In my opinion oop is so popular because it's abstract but kinda falsely seems to make a lot of sense to beginners and because it's easy to build hierarchical structures around for a business.
like all paradigms it has its place but in my opinion it's widely overused, misused and not well understood.
It seems uncommonly silly to me. Dynamic vs. static in almost all situations should come down to a matter of preference. I feel like someone who really thinks it's the worst thing ever also isn't knowledgeable enough about the compilation process to make a reasoned argument about type checking optimality. I mean, all this stuff is just a construct anyway. It's not like types exist at assembly level or lower.
those are mathematical processes, everything is ultimately a coin flip
The second you allow a data construct to be manipulated as something it's not you've throw correctness out the window.
There are a shit load of growing pains when you start to learn development. You'll feel like an idiot for probably the first few months, then you transition to feeling like you're just behind everyone else.
Tough it out. Every time you get stuck for a few hours, ask for help. Take notes, watch videos, Google -a lot-.
It gets better. Usually because you become a bit masochistic.
So I'm on my first day of intro to programming. The very first assignment is to create the Hello World "program" and I can't even get javac to work. I googled my error- 'javac' is not recognized as an internal or external command, operable program or batch file- and set my PATH in environmental variables and it still doesn't work. This isn't my PC, but I installed Java SE. It's Windows 8, but that doesn't seem to matter. It's very frustrating to be stuck on what seems to be a very simple problem. Really wish this wasn't an online class.
The web is built on text. Dynamic typing is what keeps the whole thing running. The idea that it enables some small productivity boost for people who aren't "apt" enough to handle static typing is pretty silly; this entire realm of software relies on the benefits of dynamic type systems as a fundamental aspect of how they operate.
Most paradigms are not misused and not well understood by novices. The solution is not to abandon oop, it's to accept the fact that everything has a learning curve. A novice programmer writing purely procedural code will write just as bad or worse code than a novice writing object oriented code.
I don't remember pointers ever being a big deal to me. I'm still not sure why pointers trip some people up. I can understand getting tripped up by many other parts of programming, but not pointers.Well at least you're learning Java, so things can't get that much worse yet*. Just wait until you move on to C and they start babbling on about pointers. That's when you know things are truly starting to get worse.
*I think. Disclaimer, I've never used Java before, but I hear it's similar to C# so that's what I'm basing this off.
Ehh... neither are that great to be honest. The only thing they are good for is getting people hands on with control flow and pass by reference vs pass by value.
Java has a pretty awful object system, and python has dynamic typing which is probably the most god awful feature to ever be popularized in computer science.
I'm guessing you're going to suggest C or C++ as an intro...so that newbies are more worried about what a seg fault is and whether they're passing something by value or reference rather than actual programming concepts.
I think any language where people can be tripped up on the lnagauage specific syntactical differences isn't a good one to start with. How does knowing how pointers work help you understand inheritance or recursion?
Also you're going to need some prrof that JS and ptyhon are on the decline. I find that extremely hard to believe. Python is still the scripting language of choice
I kept my response short because I don't want to get into a paradigm-war. Like I said, I could write pages about it. Also I didn't mean day one novices but people with years of experience.
I'm guessing you're going to suggest C or C++ as an intro...so that newbies are more worried about what a seg fault is and whether they're passing something by value or reference rather than actual programming concepts.
I think any language where people can be tripped up on the lnagauage specific syntactical differences isn't a good one to start with. How does knowing how pointers work help you understand inheritance or recursion?
Also you're going to need some prrof that JS and ptyhon are on the decline. I find that extremely hard to believe. Python is still the scripting language of choice
Top 20 replies by Programmers when their programs don't work
20. "That's weird..."
19. "It's never done that before."
18. "It worked yesterday."
17. "How is that possible?"
16. "It must be a hardware problem."
15. "What did you type in wrong to get it to crash?"
14. "There is something funky in your data."
13. "I haven't touched that module in weeks!"
12. "You must have the wrong version."
11. "It's just some unlucky coincidence."
10. "I can't test everything!"
9. "THIS can't be the source of THAT."
8. "It works, but it hasn't been tested."
7. "Somebody must have changed my code."
6. "Did you check for a virus on your system?"
5. "Even though it doesn't work, how does it feel?
4. "You can't use that version on your system."
3. "Why do you want to do it that way?"
2. "Where were you when the program blew up?"
And the Number One reply by programmers when their programs don't work:
1. "It works on my machine."
There is very much a reason why Ruby, Python, and JS are on the decline. There is very much a reason why we see more webtech being driven by Java, Scala, Go, D, and even back to C++ as C++11/14.