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

Reply via email to