Notices
Results 1 to 10 of 10
Like Tree2Likes
  • 2 Post By MacGyver1968

Thread: Help with my proposed course for self study.

  1. #1 Help with my proposed course for self study. 
    New Member
    Join Date
    Sep 2013
    Posts
    2
    Hello all,

    I want to learn about computer science. I am planning a self study course for myself. Also, I would like your help to get my plan completely formulated so I can start doing more, and planning less. Input on any area is welcome.

    My goal is to eventually become an exceptional computer scientist/programmer.

    My background:
    I took an introduction to computer science in college. I also took computational physics which required programming. I put together and have played with some rigs. I am curious about computers and desire to learn about them. I spent alot of time gaming and now want to replace that obsession with a more productive activity.


    Here is my current plan:


    • Learn the linux and it's terminal: TEXT: The Linux Command Line: A Complete Introduction

    Reason: Linux is a good OS to know. Also because it is open source I can really fie into the computer's operating system to learn. Furthermore, "There are no secrets in Linux." It seems like a program that can teach me alot and will make me more valuable in the job market.


    • Learn C: TEXT: C Primer Plus, Fith Edition

    Reason: Linux is written in C. I need to understand C to understand Linux's files and functionality. Learning C and playing with the Linux terminal are highly synergistic. Lastly, C is a good language to know.


    • A Brief Overview of a Machine Language: Review 2 to 3 pieces of simple machine language code.

    Reason: to help understand the inner workings of the computer.


    • Learn HTML5: Codecademy lessons. I'm open to another method or text

    Reasons: We use the internet alot. HTML5 is important.


    • Setup a Home Server: Need to find a book

    Reasons: Something to tinker with in my spare time. I have no clue if this is realistic, but my parents own a bisiness and have 5 old computers lying around the house. I figure I can use GNU software to set up a server, mayber email... I have no clue. Just something to break up the day and try to learn something new.


    Overal reasoning: C and Exploring Linux is very synergistic. Learning web is important with its prevelance. Setting up a server may be fun when I need a break, and be another way to learn about computers.

    Down the road: I plan to progress from C to C++ to C#. This seems like the most natural way to gradually move to higher level languages.


    Thank you very much for your time and help!!

    Seriously though, THANK YOU!

    -Plotnus

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------
    Python Aspect Deleted -- Reason: I learned python in my computer science class. I believe it will be better to focus on C. Divide and conquer... Unite and triumph.


    Last edited by Plotnus; October 1st, 2013 at 04:20 AM.
    Reply With Quote  
     

  2.  
     

  3. #2  
    Forum Radioactive Isotope MagiMaster's Avatar
    Join Date
    Jul 2006
    Posts
    3,440
    I don't know about which book to use, but I think most universities use MIPS (or at least some other RISC architecture) for teaching assembly. Actual Windows/Mac/Linux assembly is incredibly messy and it's generally not worth worrying about unless you intend to write a compiler of some kind.

    As for the use of learning assembly, it should help understand more about how computers work and how programming in general works, but I doubt it'll help you write more efficient methods. Modern compilers are very good and are generally optimized to make best use of more straightforward code. (Trying to tweak such things is called micro-optimization and rarely works.)

    BTW, the best way to learn programming is to simply play around with it. Find some motivating examples and go for it.


    Reply With Quote  
     

  4. #3  
    Brassica oleracea Strange's Avatar
    Join Date
    Oct 2011
    Location
    喫茶店
    Posts
    17,036
    I don't think I have much to add to that.

    I would second the point about learning assembly language. Yes, it is worth learning the basics of CPU architecture, different types of memory and cache, etc. so you can understand how things are stored, what pointers mean, performance trade-offs, etc. But I wouldn't waste time actually learning to write anything more than a simple example (e.g. add two numbers and store the result in memory) in assembly language.

    Get hold of a good IDE (integrated development environment) such as Microsoft's Visual Studio Express, Netbeans or Eclipse. It makes the edit, compile, debug cycle a lot smoother.

    Make sure you learn about structured programming (probably hard not to nowadays, but I still see some examples of badly structured code); good use of functions, objects, etc.
    ei incumbit probatio qui dicit, non qui negat
    Reply With Quote  
     

  5. #4  
    has lost interest seagypsy's Avatar
    Join Date
    Nov 2012
    Posts
    3,103
    I have almost the entire collection of books published by Murach. I am new to computer science and they are good for hands on learners.

    I would suggest getting a book that focuses on computer logic alone. I know a lot of people in my classes that screw up or get really frustrated is because they can't figure out how the computer will follow instructions given to it. You need to know how to trace a program manually step by step in order to know exactly how to write a program in a way that the computer will give you the results you are looking for. Too many people simply forget that they are talking to a machine. It will not make assumptions or guesses as to what you mean. So precision and accuracy in programming are fundamental skills you must have regardless of the language you are learning.

    Make sure you learn CSS3 with your HTML5. And keep an eye on the W3C for standards changing.
    Speaking badly about people after they are gone and jumping on the bash the band wagon must do very well for a low self-esteem.
    Reply With Quote  
     

  6. #5  
    New Member
    Join Date
    Sep 2013
    Posts
    2
    THANK YOU!!!

    MagiMaster
    Thank you. You input helped me decide to scrap learning machine language. I'll also focus on more code reading and writing.


    Strange
    You helped me decide to just look at an example or two in machine language so I can better understand how computers function. Goal satisfied, but with less work. The IDE i got is Geany, but for now I am using gedit and the terminal. I suppose I just think it's a neat way to go about it. Thanks for the input.

    seagypsy
    Thanks for the Murach recommendation, some of his books are very highly rated. Also, thanks for the info on learning CSS3 with HTML5 and looking out for changing standards. I'll also look into finding a good text dealing with the logic you spoke of. However, I'm not if you are speaking of the logic computers implement, the logic programmers should implement, or the best logic to use in program development. If you could clarify it would be much appreciated.





    Thank you all for the input, my plan has been updated accordingly. The changess are in green.

    As always more input is always welcome.
    Last edited by Plotnus; October 1st, 2013 at 04:23 AM.
    Reply With Quote  
     

  7. #6  
    Cooking Something Good MacGyver1968's Avatar
    Join Date
    Aug 2006
    Location
    Dallas, Texas
    Posts
    2,051
    These are all great suggestions...but for a career in IT, you will need a few other things in your tool box.

    You will need a compression/decompression cranial frustration removal device:


    A BFH model 5 precision adjustment tool (big fucking hammer):

    and a good quality tape measure, to measure for replacement windows after you have done "e-waste disposal" of any item adjusted with BFH5.
    seagypsy and Neverfly like this.
    Fixin' shit that ain't broke.
    Reply With Quote  
     

  8. #7  
    has lost interest seagypsy's Avatar
    Join Date
    Nov 2012
    Posts
    3,103
    Quote Originally Posted by Plotnus View Post
    seagypsy
    Thanks for the Murach recommendation, some of his books are very highly rated. Also, thanks for the info on learning CSS3 with HTML5 and looking out for changing standards. I'll also look into finding a good text dealing with the logic you spoke of. However, I'm not if you are speaking of the logic computers implement, the logic programmers should implement, or the best logic to use in program development. If you could clarify it would be much appreciated.
    I'm trying to remember how it was referred to in one of my early courses. I remember the teacher we had then, had us using Alice initially to help us understand the concept of sequence in writing instructions. Alice is free and is designed to be used by students middle school and up so it's very user friendly and great for beginners.

    I will see if I can find out which textbook is being used in the logic course I took so many years ago.

    Edit:

    Seems they are no longer offering the course I took years ago, but this book on amazon looks to be along the lines of what I had in mind.
    http://www.amazon.com/Starting-Progr...e+design+logic
    Last edited by seagypsy; October 1st, 2013 at 09:43 AM.
    Speaking badly about people after they are gone and jumping on the bash the band wagon must do very well for a low self-esteem.
    Reply With Quote  
     

  9. #8  
    Forum Freshman
    Join Date
    Aug 2013
    Posts
    18
    hi,
    i have been working with c++ for a while now
    and basicly i just want to add that going from c to c++ is not necessary. c++ is an extention of c, if you understand c++ you understand c
    the major difference between the 2 is object oriented programming (oop)( and c++ has been updated resently, first time in a decade, i highly recomend using c++ 11, visual studio has a compiler that supports it, but its windows only )

    if you have no /very basic experience in programming i also reccomend to start with c# / visual basic / java /... (a higher level language)
    these languages are easier to learn and understand, this way you learn how to "think" like a programmer and play with the basics
    then you can make it a bit harder and go a level lower,

    c/c++ is old and low level,
    it can be verry unclear what certain functions do because they had to spare memory, so they gave it an abbreviation
    also certain function parameters are not used anymore, so you end up filling params with empty objects etc, they just remain because of backwards compatibility

    and for example, in order to make a simpel windows form ( i havn't done it in linux but i'm pretty shure it's the same concept)
    requiers a good understanding of pointers and other programming techniques, and other languages like visual basic/ java give you an easy to use predefined form (ok you dont have to use it but its an example, its just more fun to work with images, lines, en visual applications than in a cmd form)
    (and you dont even have to worry about pointers in other languages)

    the book we use at school is "the c++ standard library second edition" its explains everything you need to know about c++, differences betweent c++ 11, 98 and c
    but it reccomends you to know the basic fundamentals about programming

    ( mayby you read this already but in order to learn c++ you must already now it)
    goodluck!
    Reply With Quote  
     

  10. #9  
    Brassica oleracea Strange's Avatar
    Join Date
    Oct 2011
    Location
    喫茶店
    Posts
    17,036
    Quote Originally Posted by Drumstig View Post
    i just want to add that going from c to c++ is not necessary. c++ is an extention of c, if you understand c++ you understand c
    That is true to a degree. But to really exploit the features of C++ you need to take quite a different approach. I would recommend something like Design Patterns: Elements of Reusable Object-Oriented Software: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: 0785342633610: Amazon.com: Books for learning a good structured approach.

    if you have no /very basic experience in programming i also reccomend to start with c# / visual basic / java /... (a higher level language)
    I agree. Well, Apart from Viusal Basic which is shocking. C++ is a bit of a mess because it is tied too closely to C. These languages will give a "cleaner" introduction to object oriented programming, typing rules, data structures, etc. They are also used in industry, so are practically useful.

    The Go Programming Language is another one to consider as a learning tool. Not sure how much real use it gets.
    ei incumbit probatio qui dicit, non qui negat
    Reply With Quote  
     

  11. #10  
    Forum Radioactive Isotope MagiMaster's Avatar
    Join Date
    Jul 2006
    Posts
    3,440
    With C++11, you also manage to get a little bit of just about everything else and yet it's still clearly C++ since a good chunk of it is done through really clever use of preexisting C++ features.

    I don't think proper C and proper C++ are so easy to switch between though. It's just that very few people try to really use either fully and to the exclusion of the other.

    The reason for using either though is that it's still fairly easy to get at very low level stuff efficiently if you need to. If you'll never need to, it's certainly possible that other languages would be better for you. But then again, every language has its pros and cons. You miss out on learning about memory management and pointers if you start with a garbage collected language (like Java or C#) and that can really bite you if you try and learn a non-GC language afterwards, but that's becoming less and less important.

    In the end though, you'll probably end up using either what you're most comfortable with or what your boss tells you to use.
    Reply With Quote  
     

Similar Threads

  1. US proposed cancer drug reserve
    By iceaura in forum Business & Economics
    Replies: 2
    Last Post: September 3rd, 2011, 05:21 PM
  2. proposed deffinition for life
    By saul in forum Biology
    Replies: 14
    Last Post: June 27th, 2011, 05:21 PM
  3. PROPOSED NEW CONTAINMENT - FUKUSHIMA
    By jsaldea12 in forum Pseudoscience
    Replies: 2
    Last Post: April 12th, 2011, 01:24 PM
  4. proposed new photon model
    By schiz0yd in forum Personal Theories & Alternative Ideas
    Replies: 3
    Last Post: May 17th, 2010, 11:38 PM
Tags for this Thread

View Tag Cloud

Bookmarks
Bookmarks
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •