RE: How to start programming? 02-08-2018, 08:10 PM
#14
(02-08-2018, 07:58 PM)Ender Wrote:(02-08-2018, 07:51 PM)Mxyzptlk Wrote:(02-08-2018, 07:41 PM)phyrrus9 Wrote: Literally what he said, but I want to make a few points:
You will learn by working on your own, but in reality the more you struggle the more you will learn. Picking projects you can't finish is probably the easiest way to learn them, because as you do the project you learn more, sometimes you have to set that project aside and work on another, but once you finally do it it's a very rewarding feeling.
College tends to teach you bad practices, but you don't go to college to learn, you do that to get exposed to the ideas. It's still a good idea to take college classes in most cases, but don't consider a degree in computer science to mean that you know how to program, you don't, you simply know how to learn programming.
Agree exactly with Ender on this one, my two cents is that being anal about memory used and instructions included will make you a better programmer in the long run.
1. I understand what you are trying to say, but Algorithm itself means writing an efficient piece of code with minimum Space and Time complexity.
2. Indeed, most colleges teaches bad code practices, but I have taken the MIT course, they use IDLE and give you constant updates on time taken for each program. They care more about the space and time complexity than us.
3. I myself recommend Low level language check the courses for what languages they are based on, or let me help you:
1. Code Yourself! An Introduction to Programming - Scratch programming, for total beginners [will remove it if you want]
2. Programming Fundamentals - C language
3. Programming for Everybody (Getting Started with Python) - Python
4. Introduction to Computer Science and Programming Using Python - Python
5. Learn to Program: The Fundamentals - Python
I know Python is a high level language, but now a days almost everyone recommend python as starting language and I don't see any bad thing in it.
Python isn't multithreaded, it's fake-multithreaded.
C is also a high level language by the only real accepted definition of high/low level. The issue is that Python is interpreted.
Don't get me wrong, Python is extremely useful for scripting, but not for real programming.
Minimum space and time complexity is not always the goal. O(N^2) algorithms can be better than O(N) ones if the input is small enough. Also, I said to use as little instructions and memory as possible, that means that it would likely need to have good time and space complexity.
IDLE is bad, use vim/nano/emacs and the Python interpreter for POSIX OSs instead.
I wouldn't do anything with Scratch, it's a language made for 5 year olds, and even then I'd say to teach them a BASIC instead of Scratch.
If you do take courses, do not take them on programming. CE and CS are better choices, and you have a better chance of learning things that are harder to learn on your own, if the course ends up being good.
1. What is wrong with an interpreted language?
2. Yes, I understand the concept of Big-Oh, Omega and Theta.
3. I like Pycharm more and yes, Brackets. You see everyone has different preference.
4. Dude, those courses are for CS, I made that article for people who have no knowledge about programming or CS, people who think math and programming are different, those courses will show them how math is integrated with programming. My motive is to help develop people's logic and thinking capability, otherwise I would've pasted links of Lynda, Pluralsight, Udemy, etc.
(This post was last modified: 02-08-2018, 08:10 PM by Mxyzptlk.)

![[+]](https://sinister.li/images/modern/collapse_collapsed.png)