Details
-
SkillsC++, C, C#, Java, Ruby, Rails
Joined devRant on 2/4/2017
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
@Voxera Oh, I'm not upset at all, sorry if it came out that way, I was just explaining my point of view regarding to your comment, but I have to say that it's a shame that there exists CS programs which neglect software engineering in such a way :(
There isn't much more to say, we simply don't agree in which aspects are the most important in a first programming language -
@BindView Offtopic, but UX does indeed mean user experience, it's very related to UI but encompasses a lot more: Accessibility, colors, typography, meaningful (non-deceitful) charts, sensible default settings...
In the end it's like imagining lots of different people and thinking about how they would interact with your app/system/whatever so you can anticipate their needs and design accordingly.
@Voxera I think that implying that people who learn programming with C or C++ don't learn how to design software (and I mean a software engineering kind of design here) is a VERY bold claim. If anything these languages encourage (force) you to understand how design patterns work instead of using *shiny_new_framework*.
Of course, learning with C or C++ is somewhat harder, but if you want to be actually good you have to be prepared for that. After that, he'll be able to go for whatever field/language he likes AND he'll know where all those fancy features come from (and their cost). -
Even if old, I think this is a good (and lengthy) read on the matter and why some of use recommend C as first programming language: https://joelonsoftware.com/2001/12/...
I'll quote one of the conclusions for those who don't want to read the whole thing:
"These are all things that require you to think about bytes, and they affect the big top-level decisions we make in all kinds of architecture and strategy. This is why my view of teaching is that first year CS students need to start at the basics, using C and building their way up from the CPU. I am actually physically disgusted that so many computer science programs think that Java is a good introductory language, because it’s “easy” and you don’t get confused with all that boring string/malloc stuff but you can learn cool OOP stuff which will make your big programs ever so modular. This is a pedagogical disaster waiting to happen." -
I completely agree with @BindView
It doesn't really matter what you want to do next. Even if it is somewhat harder, C will teach you a lot of very useful things that (almost) no other language would. Also, I'm from the opinion that your first language somehow shapes the way in which you solve problems, it's better if you start thinking in a way that is close to how the computer works from early on. -
Well, that's somewhere between overoptimistic and stupid... I don't think I've been in any project where the initial design survived until release with no modifications whatsoever :/
-
While the console requisite might be a bit stupid (you can always try to talk him out of it) I have to agree with your teacher in the documentation thing.
Being able to plan what you will do during development beforehand is a very useful skill to have and can save you a lot of headaches in complex projects, and even if your plan doesn't survive contact with reality, you'll be able to see what you went wrong and what things you were unable to predict, which is also useful)
Just an example, imagine you are working on a large project and need an API which will be developed by another team according to your requisites. Ideally, you'd have to tell them exactly what you need from the very beginning.
If you ask for more than that, you will make them waste their time, and if you ask for less an have to wait to try it before realizing, you can potentially waste your time while you wait for the other team to implement the new specification.