Anda di halaman 1dari 3

Hey,

this is going to be a list of resources that you will need to learn how to
program. But more than learning how to program, you will learn how to be a
software engineer. People need engineers and not programmers. Maybe
you dont make a lot of money in Albania as an engineer but I believe that if
you get the knowledge and you can finish an American masters online you
can change your life. It will take about 2 years and you can truly become an
expert at something useful.

1a. Introduction to Programming in Java


This is the introductory textbook that we use at my university. This is
probably the most important book in this list. If you can finish this book and
do 80% of the exercises you can learn any other language. It will also make
you prepared for algorithms which are extremely useful. Its online and it
comes with instructions on how to use it.

http://introcs.cs.princeton.edu/java/home/

1b. Head First Java, 2nd Edition


This is also an introductory Java textbook. It always helps to have multiple
sources on how to learn the same thing. This will make some of the
concepts in the first book (book 1a) a lot easier.

2. Programming Languages and Techniques


This is an entire class that people take at Penn. It has a book and the
homework. Play around with the site and ask me questions if you need any
guidance.

https://www.seas.upenn.edu/~cis120/current/
3. Algorithms (4th Edition)
Algorithms are key to programming. This book offers really clear
explanations. You should absolutely master this book.

https://github.com/haseebr/competitive-
programming/blob/master/Materials/Algorithhms%204th%20Edition%20by
%20Robert%20Sedgewick%2C%20Kevin%20Wayne.pdf

4. Introduction to Computing Systems


Finally, some hardware. Because this is a set of books that cover software
engineering we wont really learn a lot about hardware. This is not a
problem because it is easier to create software products than it is to create
hardware products. Software people also make a lot more money.

This book covers computer architecture and a little bit of C at the end.

http://tandon-books.com/Electrical%20Engineering/EE1012%20-
%20Introduction%20to%20Computer%20Engineering/(CSEE1012)%20Introd
uction%20to%20Computing%20Systems.pdf

5. Introduction to Discrete Mathematics


Software is not really about calculus even though you should know a little
bit. It is about discrete mathematics. In this subject, we cover things like
probability and set theory.

The book is not online but I sent it to you via messenger.

6. Introduction to the Theory of Computation


This is also another math book. It covers a field called automata theory
which is a theoretical description of computers. Its very theoretical but you
need to know it.

http://documents.pageflip-
flap.com/s7hsJ8eUxQc1pjOHknqN#.WUKx6uvyuM8=&p=7

7. Introduction to Algorithms
This is the thickest book here. If you can master this book you can get a job
anywhere in the United States. Requires a decent understanding of
programming and a little bit of calculus and discrete math.

https://github.com/yuanhui-yang/Introduction-to-
Algorithms/blob/master/Introduction%20to%20Algorithms%20-
%203rd%20Edition.pdf

Anda mungkin juga menyukai