RE: How To Start Programming For Beginners 02-08-2018, 08:22 PM
#16
(02-08-2018, 07:51 PM)Mxyzptlk Wrote: 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.
No, an algorithm is just a way of doing something, bad algorithms exist (like swife's expression parsing)
(02-08-2018, 07:51 PM)Mxyzptlk Wrote: 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.
I don't vouch for MIT's classes. They give you exposure, but that whole town is too up their own asses
(02-08-2018, 07:51 PM)Mxyzptlk Wrote: 3. I myself recommend Low level language check the courses for what languages they are based on, or let me help you:
As do I. C is great and powerful, but my favorite is AArch64 (ARM 64-bit Architecture), which is machine code
(02-08-2018, 07:58 PM)Ender Wrote: 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.
"not for real programming". Agreed, Python isn't a programming language, it's a scripting language. I use it commonly for automating small tasks and making complex cron jobs
What I said about memory image size wasn't about spacial complexity, it was about code density. Look at ARM for example. The most efficient way to write something is actually using Thumb-2, which significantly limits the instructions and registers available, but it also (and literally) cuts your program size in half, and you get to retain the always conditional portion, but you lose things like the set bit. Sometimes (look at the XNU kernel) it's more efficient to transition in and out of thumb2 and aarch64. This is the definition of hacking.
Agreed entirely with vi, nano is nice sometimes.
I worked with scratch a lot (when I taught programming classes). its neat for teaching logic, nothing else



























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