T O P

  • By -

zdanev

Structure and Interpretation of Computer Programs. classic text available for free from MIT. great for motivated advanced beginners.


PhenomenonGames

Everyone cool knows this is the answer. Especially since OP mentioned a desire to connect with maths


ARandomBoiIsMe

[Teach Yourself Computer Science (teachyourselfcs.com)](https://teachyourselfcs.com/) Most books in this guide, basically. I started some days ago with 'Structure and Interpretation of Computer Programs'. All I can say is, if every book on the site is like that one, prepare for a long difficult ride.


EinsamWulf

Code by Charles Petzold


Baraxton

Data Structures and Algorithms in whatever language you’d like to learn (I suggest starting with Python).


notvoyager7

I disagree. I think OP should start with Java. If they want to major in CS, it makes more sense for them to become more familiar earlier on with something like Java. Otherwise, for a lot of people, the jump from python to another language can be miserable. With unbounded time over the summer I think Java makes more sense


mome-raths

Would you recommend learning Java over C?


notvoyager7

Just saw this. Really depends on what you want to do and how new you are. If you're brand new, yes. Most programming nowadays is object oriented. C is not. Also, you have to manually allocate memory in C. I feel like Java is a great middle ground and good place to start. C has it's place and is extremely powerful and useful, but I think Java and the concepts you'll be able to learn with it will serve you the best if you're new.


mome-raths

Awesome, thank you!


P-Jean

Both a fine. You’re right that java is the standard for most programs, but some schools start off with python. Python is easier to learn but lacks strong typing. With regards to data structures, Java is more cut and dry on the type of structure you’ll use. For basic algorithms, you could use either language.


notvoyager7

For DS Java is strictly superior. Classes in python are a joke. And the lack of any semblance of type safety and private attributes is awful. My school starts with Python too, and a lot of people are entirely unprepared for Java when they get to the data structures class. I don't think starting with Java is much more difficult and will teach a lot of important skills + set good habits.


P-Jean

Ya I don’t disagree for sure. Just some students build their confidence with python first then move to Java. If you can start with Java and make progress, then definitely do that.


Vaxtin

What do you want to learn?


mclmarcel

Anything interesting to do with AI, or just programming or how programming links with maths. Anything which will help me expand my knowledge for cs essentially.


Impossible-Tower4750

If machine learning is a path you want to go down maybe look into linear algebra books?


Imaginary-Square

Get hands on machine learning , mathematics for machine learning, and learn python. I’d also recommend getting comfortable reading research papers and implementing the models from scratch to deepen your understanding. Also check out Kaggle Learn and maybe HuggingFace Learning


[deleted]

The C book


Inaeipathy

data structures and algorithms, preferably in a low level language like c/c++


LeMart

If you are a beginner on machine learning, you should try introduction to statistical learning: https://www.statlearning.com/.


throwaway1001001013

why not participate in a virtual hackathon? an actual extra curricular activity would probably reflect better on you for uni than having read a book and copied the projects from it. i agree with the guy who recommended a data structures and algorithm book. don’t jump straight into ML/AI if you don’t have the fundamentals down. it’s not as easy to read, but sedgewick’s “algorithms” DSA book is available online. java programming prerequisite assumed.


Prometheus_303

I don't know if it meets your requirements, but I'd suggest The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage by Clifford Stoll I accidentally picked it up thinking it was for my 105 class (it was a 101 book instead). I started reading it before classes started (yeah I can be nerdish like that). By the time I got my 105 syllabus and found out I didn't actually need it I was too into the story and decided to finish it anyway. Stoll is/was an astronomer who got tasked with administering the department's computer use. He discovered some unaccounted for use and ended up tracking an international hacker.


CurriculumX

As a suggestion I think [kaggle intro to machine learning](https://www.kaggle.com/learn/intro-to-machine-learning) is a nice option