Advice on where and what to study

Advice on where and what to study

guy keren choo at actcom.co.il
Fri Dec 3 21:22:10 IST 2010


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 <michf at post.tau.ac.il> 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" <dyasny at gmail.com> 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
>>> Linux-il at cs.huji.ac.il
>>> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
>>
> 
> _______________________________________________
> Linux-il mailing list
> Linux-il at cs.huji.ac.il
> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il




More information about the Linux-il mailing list