9 comments
Comment from: Alexandru Visitor
Comment from: gr8dude Member
Alexandru, this is another one pro Python. I remember spending quite some time trying to make something work in C, and very often the problem was in my inability to express it in C, rather than in my not understanding the algorithm.
A high level language like Python helps you focus on ideas, and change the project into a working state.
Comment from: Ion Todirel Visitor
there are a lot of things in your tips that are very subjective like:
- Don’t get too involved with Microsoft tools
- Learn Python
- Don’t write your theses in Word
are you serious? of course you always need to keep growing in both sides, just learning some tools and hiding in a rock is not going to work, but the way you said it is too much I think… anyway other than that I think the tips are a nice touche
Comment from: gr8dude Member
I am really serious, and this is really true.
In the case of UTM, the environment is definitely Microsoft centric, as all student workstations are running a flavour of Windows. Because of that, the students’ knowledge is biased towards Microsoft products.
Write a thesis? Use Word. Make a spreadsheet? Go for Excel. And so on… it is quite difficult to find a student who will use another tool. This is further enhanced by the fact that AutoCAD, 3D Studio Max, and other programs required by the curriculum are for the Windows platform.
[Side note: if BSA forces UTM to pay for everything - the university is screwed big time]
Programming - it is all about Win32, except the cases in which we wrote simple operating systems, or generic stuff that is simple enough to be compiled everywhere. None of the courses we’ve had taught us about portability, and I think there is a great deal of graduates who don’t even suspect that their code may not work at all on another OS (dumb students? or is it the fault of the university?).
I’m not saying they should ditch Windows and everything else it stands for, I’m saying that they shouldn’t be narrow-minded and spend some time tinkering with other systems and other tools. Surely, they’ve heard about Linux, or Inkscape - but are they skilled enough to be productive with these as they are with their Windows equivalents?
In the real real world, not everyone uses Windows. If they do, do they use it honestly? I have 4 computers at home, 2 of which run Windows, but only one of them is licensed. If you’re carrying a Microsoft flag, do you also honestly pay for all the Microsoft stuff you use?
Regarding Python, I didn’t say “forget everyhting else and learn Python", I said “learn Python". Once you do, it will be easier to decide which language to use for each task; I predict people will be biased towards choosing Python, because it saves a lot of time. You can recommend another “favourite language", it’s just that my experience tells me that Python is a safe bet. In the future I will try to find some time to cover Python in detail and explain why I like it so much and why I think they should teach it in schools instead of Pascal :-)
Comment from: Olga Visitor
Poate ar fi util sa specifici inca un lucru in lista [pe care majoritatea studentilor il uita] - study thoroughly throughout the academic year. Pentru ca lista ta ar putea fi utilizata in utlimele saptamani inainte de sesie, ca ultim remediu si speranta in rezultate bune la examene.
Cat despre somn, e putin utopica ideea de “invatare” in acest caz [este logica oare expresia “putin utopica"?] dat fiind faptul ca oamenii au bio-ritm-uri diferite, iar o incercare de a-l schimba poate avea repercursiuni asupra sanatatii care se vor lasa observate in the long run. Asa ca un sfat care le va ingloba pe toate este sa monitorizati orele la care vi se face somn si sa va programati activitatile in asa fel, incat sa coincida perioadelor zilei/noptii cand va simtiti cel mai “energic".
Si ca sa nu uitam de Wikipedia, acolo pot fi gasite niste articole destul de interesante cu referire la somn si sleep schedule.
Comment from: Alexandru Visitor
Alex [Member],
What I meant by algorithms is something else. The point is that the algorithms represent the logics or intuition. For instance, how many students from UTM know how the quicksort algorithm works or how many students know how to work with binary trees in an efficient way. They are mostly taught how to use them (algorithms) but not their structure.
For your second comment the problem related to Windows is mostly due to crappy professors. I can tell you that in UTM there are profs who don’t even know how to use a PC with Windows. More than that most of their “teaching tools” (i.e. AutoCAD, PCB crap etc) work on Windows.
Comment from: Erwin Magritte Visitor
to add:
“Learn LISP or any other functional language.”
VERY important. In Python or Ruby or C# or C++0x or _whatever_language_ there are lambda expressions, which contribute to a functional style of programming. This is good, but it’s not enough.
A lot of languages today (again, citing Python or Ruby) have quite a great commitment to lists, which again is very good, but not enough.
Some languages tried even to implement lazy evaluation techniques or monads or _add_a_functional_feature_here_, but they’re still far from the high-level-ness of functional languages.
Ok, LISP is big, learn Scheme then.
Ok, Scheme is weird. Then, in case you want the ultimate beauty - try Haskell.
Comment from: gr8dude Member
Thanks for the input; I definitely agree with what you say.
Unfortunately I haven’t got the chance to get to learn a functional programming language and really use its beauty to get stuff done in an elegant way.
For those of us who have a procedural programming background, Python is a good starting point.
Learning Scheme is in my “to do” list though.
Did you use any of the languages you’ve mentioned in your university assignments? If yes, which discipline? And what do the programs do?
Comment from: gr8dude Member
Here’s another set of recommendations: http://stackoverflow.com/questions/76364/what-is-the-single-most-effective-thing-you-did-to-improve-your-programming-skill
You forgot the most important:
“Please do learn algorithms!!!”
“Please do learn how to analyze the algorithms!!!”
“Please do learn something”
…