if your problem is with understanding the C language properly - you
should read "the C programming language, second edition" cover-to-cover.
everything will be explained there.
if you want a wider understanding, as Micha suggested, you would do well
to learn the following courses (find their equivalents in the open
university - and check their books - they are very good books):
1. Introduction to computer science. (the first programming-related
course taught in the technion. there are most likely parallel courses in
other universities). you might know a lot of this - but i'd suggest
going over all the slides to make sure:
http://webcourse.cs.technion.ac.il/234114/Spring2010/
2. Data structures (sometimes called "Data structures and algorithms) -
this covers various implementations of data structures to sort, lookup
and manage data, with emphasis on the efficiency in which they support
different operations, and the amount of extra memory they consume.
http://webcourse.cs.technion.ac.il/234218/Spring2010/
3. learning assembly could help you understand better the internals of
how computers work, and is required to later understand the operating
systems course. this course is called "computer organization and
programming":
http://webcourse.cs.technion.ac.il/234118/Spring2010/
4. operating systems. this is usually a technical course that deals with
the low-level aspects of operating systems and their structure.
http://webcourse.cs.technion.ac.il/234123/Spring2010/
5. you might consider studing "digital computer architecture" - which
talks about how a computer is built, how RAM and virtual memory is
managed, etc.
http://webcourse.cs.technion.ac.il/234267/Spring2010/
6. combinatorics (needed to understand the algorithms course that follows):
http://webcourse.cs.technion.ac.il/234141/Spring2010/
7. finally - if you want to write real software - i would also take
"algorithms". this is not relevant to very technical programming - but
it is relevant for more advanced programming.
http://webcourse.cs.technion.ac.il/234247/Spring2010/
NOTE: i have listed the courses here, in a dependency order. the exact
dependency grapy:
1 (intro to CS) ---------------------------- 7. (combinatorics)
| | |
V V |
2 (comp. organization and prog.) 3 (data structres) |
| | / | |
| | / | |
V V V V V
5. (mamas) 4. (operating systems) 6. (algorithms)
if ytou're only interested in the technical side of programming - take
courses 1-5. if you're also interested in developing software that
requires using algorithms - take courses 6-7 too.
--guy
Dima (Dan) Yasny wrote:
On Fri, Dec 3, 2010 at 4:41 PM, Micha Feigin <[email protected]> wrote:
You could try looking at the open university, but the question is what do you
expect to get out of these courses.
I don't get anything out of those I'm afraid - books I can get and
read on my own, but I'm looking for something more structured, and
with more exercise...
University courses I know don't teach you much about actual programming. I
would take at least one course about software engineering, preferably both
functional and object oriented, including uml and testing methodologies. Also
an object oriented course with emphasis on object oriented methodologies and
design. These have proven more invaluable to me than actual programing courses.
Computer structure and operating systems have also been very good, but you have
to read between the lines, as sometimes the interesting part of the syllabus is
hiding behind lecturers who are not even aware of it (initial course in lisp in
tau for example)
Computer structure you say? I'll keep that in mind. In general, I'd
like to get a hold of at least a list of courses to look for and their
ordering.
I want to get some proper studies done because I've been touching some
topics here and there, and ended up at a point where I can write a
heavy recursive function in C or Python, but reading a bit of code
where instead of int I see unsigned int puzzles me.
"Dima (Dan) Yasny" <[email protected]> wrote:
Hi all,
I'm looking for some advice on which courses and where to take, in the
Central area.
What I'm looking at is getting some more formal and proper programming
background, something around
Intro to C -> Advanced C -> intro to C++ -> Advanced C++ -> Linux
specifics maybe...
I tend to mostly work with Python, but I keep running into dead ends
because I lack proper education more and more recently
I am aware of proper BSc/BA programs, but I'd like to do this in under
a year overall, and stay away from the extra math/physics/etc courses.
Background - 15 years sysadmin, bash, python, powershell scripting
Highschool pascal, prolog, magic, assembly etc - long forgotten mostly
So if anyone is aware of a college of institution that provides such
courses, preferrably as a set up program, I'll be very happy to hear
about it
Cheers,
D.
_______________________________________________
Linux-il mailing list
[email protected]
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
_______________________________________________
Linux-il mailing list
[email protected]
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
_______________________________________________
Linux-il mailing list
[email protected]
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il