Quick Tips and Tricks
This will probably cater to Berkeley students because they are tricks I’ve learned. They are still good general tips and tricks though.
Keyword Search
So I showed how to use google.com to find classes. Other useful keyword searchs are
site:[url] ...
to search only on that site. For filetype:
filetype:[filetype] ...
An example:
filetype:pdf site:https://inst.eecs.berkeley.edu/~cs161/fa18/ polymorphic code
and can search lecture notes on what you don’t know.
This is useful for documentation and sheetmusic too! Any website that doesn’t have a good search function, this works! I like using this on reddit.com, it has a shit ton of info. Try searching my website!
Downloading Webcasts
I asked on piazza about downloading webcasts. You can, and I later wrote a script to download whole classes.
All previous webcasts are at: here.
To download: Use youtube-dl and download the program for your OS. I use Windows, so I download the .exe and can run it from cmd when I am in the folder with youtube-dl.exe. You can use Chrome and get the cookies.txt extension.
Open up a webcast under your Berkeley account, and under the cookies.txt extension choose to download cookies for this tab, you should now have downloaded a cookies.txt file.
Now in your terminal run:
youtube-dl --cookies [location of cookies.txt] [webcast video link]
And you should be able to download any webcasts.
Downloading Webpages
I learned this from the Social Network movie and StackOverflow.
Get wget (Linux and Mac should already have it). Then run:
wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/
with the site you want. Be careful, this is recursive so keep track it is only going where you want and cancel when needed.
Development and Internship
The main reason I like Java is because it has nice tools. It knows what I want to write. The verbosity is helping in reading code, but also sucks a lot of the time. Sometimes I just want to go fast. Tips:
- Read the documentation and know how to Google for it.
- Learn to Google and use StackOverflow to debug.
- Intellij is really nice. Autocomplete and the information with type declarations it tells me is amazing.
- Learn how to debug. How to add breakpoints and step through your code and check your variables pass your invariants.
- Learn how to test and mock. I have used Junit and Mockito.
- Learn how to install libraries with Mavern.
- Learn how to use Git and Github.
- Avoid boilerplate with Lombok.
- Learn to use the Collection Library such as for data structures.
- Learn to use Abstraction, and Design Patterns.
- Learn basic Unix Commands..
- Learn to log and debug from logs.
- Learn to deploy and code review.
- Learn to use Streams and Functional Abstractions.
- Java also has a Jupyter Notebook.
Ask lots of questions. Be clear when you don’t know something but try solving the problem before for five minutes. When you ask for help, be clear what you have tried.
Classes and Learning
- Make study groups. There are things you don’t understand that they will help you with.
- Make cheat sheets from review session. HKN and class ones are really good. They know their stuff. Search on piazza and ask your friends who took the class before for the links.
- One cheatsheet per exam material. Usually it’s one cheatsheet on midterm one, two cheatsheets on midterm two, and three cheatsheets on the final.
- Cheatsheets are to keep you actively focused on studying. You rarely use it on exam except for the stuff to remember. Equations, quick ideas/processes, etc.
- Do Practice Exams. I like to go through one with the answers to get a feel for what they ask. Then I try to do it without (which is hard and I fail a lot), but studies show it is better that way.
- Active Learning - iPad and write notes. I learn better from writing and intentitively reading than watching lectures which becomes passive and I lose focus.
An example on note taking on the Fork Join Framework. Excuse the messy handwriting; it’s only to take quick notes
- Feynman Technique. Teach somebody else. This isolated what you don’t under. Could you teach somebody at your level?
- Go to office hours. Learn via osmosis from others in office hours.
- Ask on Piazza. This feels slow and ineffective sometimes but other times you will eventually get an answer.
- Go to class and discussion! This is the easiest way to stay caught up!
I use my iPad to download the lecture slide or whatever I’m reading like documentation. Insert the slide into OneNote and write all over it.
Homework and Projects
- Start early. Plan. Read the documentation actively, use an iPad and write notes, questions, hightlight.
- Try things out. Give yourself an hour. Then take a break. 10 mintues, walk around, stretch.
- Use a pomodoro timer. There are Chrome Extensions for that. It is hard to stay undistracted.
- Keep a bug journal. It will make you more aware of the bugs you write.
- Slow and steady wins the race. Often we think this is easy and we have a working solution only to spend hours on debugging. Meticiously critique your code. Test it. Don’t assume it’s right because it won’t be.
- Peer Program. Program for 15 minutes while your partner checks your work. Then swap roles every 15 minutes.
Resume
- Make a resume in PowerPoint. Make a landscape normal page size. You can move everything everything. Colors, sections, etc. Only problem is auto-parser will have trouble with it.
- One page no space. On a resume, maximize room. I learned this from my high school English teacher, which made us write this way. It teaches every word matters.
- Include your education, what experience you have, what projects you have, and what skills you have. Give quantifiable ammounts if possible.
- You can look at mine for example.
Health and Wellness
- Keep close friends and family. It’s better to have a couple close friends than to be slight acquaintances with many. I have notices I develop different social groups though.
- Ask for help from them. You need a support network or you will spiral into depression.
- Say No. Sometimes you can’t and don’t have the time for something. Be honest but be polite and sweet. How would you like to be let down?
- Be balanced. Time for work. Time for sleep. Time for friends. Time for self.
- Get sleep, proper nutrition, and exercise.
- Go to a psychologist. There are four free session, and it helps to talk about your problems.
- Talk to your friends and listen to them. Focus on EQ, empathize with them and they will empathize in you. Show interest.
- Reward yourself. You put in hard work, and we are in for the long run.
- I am really getting into running. Try it. Slowly build up. I would like to run with a friend, hit me up!
- Don’t let setbacks bring you down. You are in control of the future. Setbacks are part of life. Randy Pausch has a brick wall metaphor. Brick walls aren’t there to keep you out. They are there to give you a chance to show how badly you want something.
- Don’t worry. It will kill you and it will all be for nothing. Look at all the times in the past you were worried about something and it turned out to be silly and not a big deal.
Fin
That’s all. This went on more of a tangent than I was expecting but it has good stuff. See y’all later!
Post by: Brian T. Liao