Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialSean Fitzpatrick
1,992 PointsHow to stay motivated?
I've thoroughly enjoyed learning different aspects of coding and look forward to really embracing it as a career - however, I've done some brief research on different job openings and when looking at the requirements I feel as though I'll never reach that point in a realistic time frame ... and these are "entry-level" jobs too.
Even if I do apply and by some stroke of luck get a job, I still feel as though I won't know ENOUGH to be a functioning part of the team as I lack any real world experience (besides working on my own projects for learning).
I know this stretches into more of a confidence issue, but I'm just curious as to what other people have experienced when starting their careers in new field.
1 Answer
Dane Parchment
Treehouse Moderator 11,077 PointsAlright I may be able to offer you some advice here:
For starters you are correct: You don't know enough and unless you have worked in the field before, your employers won't expect you to know how everything works as well. Most employers understand that the people they are hiring aren't going to know how to do everything listed in a job offer. In fact most requirements in a job application for development tend to be more akin to suggested knowledge than actually required knowledge. Of course there are things that you are expected to know (which I will detail later), but most other things you are expected to learn on the job.
First let's deal with some stuff that should help keep you motivated:
- Create an account on codefights this website is great, it allows you to practice your programming skills in a light competitive environment.
- Create a hacker rank account. This website is wonderful for learning new things, taking part in hackathons, and practicing actual interview questions from real companies.
- Just start programming for fun, think of small applications that you can actually write and then expand on them later: For example, you can create a basic console based note taking app, then bring it out of the console and into a GUI application, then you can implement networking and make it usable by multiple people!
- Never stop learning! There are a plethora of websites out there that offer free learning solutions/articles/etc. about programming. just keep reading them.
- Pick up a new programming language or principle: Haven't learned OOP? Then learn Java, Haven't done any Functional Programming before? Then learn F#, Pascal, or Haskell.
- Join a hackathon, Hackerrank offers tons of free ones or just look around for local hackathons (or ones you can drive too). It will be nerve racking at first, but you will be in the company of people who want to learn, and it may help your teamworking skills!
Now let's list some things that you should be comfortable with before you apply for a job as a software engineer/programmer:
- Open up a github account! REALLY DO THIS , if you haven't done this already, stop and create a github account.
- Learn how to use git on the console (git init, git commit, git push, etc.) and understand the git workflow.
- Start putting applications/websites etc. that you have worked on in github, this will act as your personal portfolio, and will allow your employer, interviewer to actually see your code.
- Be comfortable with Data Structures: You should be able to implement things like a linked list, an arraylist, a stack or queue, etc. without using the ones implemented by your language of choice. Also understand sorting and searching algorithms like: Mergesort, Quicksort, binary search etc.
- Understand time complexity, and how to improve it.
- By understanding the above two points you will improve your programming skills 10 fold!
- You should pick one language and git gud with it. By git gud I mean master it, learn all of its ins and outs, its dirty little secrets, and its beautiful surprises. Popular languages include: Java, C/C++/C#, JavaScript (Node, Angular, React), and Python.
- While you should be good at one language, at least knowing the syntax for one other will also look nice. i.e if you have mastered Java, it will look even better if you can write at least a small console application with C++ as well.
Hope that helps!
Articles and Tutorial Based Websites:
Web Development
- Scotch IO - Tutorials on all of the newest web technology stacks/languages (mainly for developers)
- Codrops - Tutorials and articles web design (geared towards designers/ front-developers)
- Smashing Magazine - Tutorials and Articles on the latest web development/design trends
Programming Languages
- Exercism IO - A great place to practice learning a new language by providing challenges geared towards the language
- Tutorialspoint - A great reference for those who are just trying to remember information on a language, or veteran programmers simply trying to pick up a new language.
Machine Learning Machine Learning Course - Hey if you are interested in teaching computers how to do things..look no further than this course. I will say though, know your maths for this one!
Videos
- Derek Banas Youtube - I think this is the best youtube channel out there right now for learning programming or picking up new languages quickly!
- Coding Train - If you SERIOUSLY want to stay motivated to program, then really subscribe to this guy. I have never met someone as passionate as him. You will also learn a great deal about physics programming and mathematics from him. Finally, he also goes through coding challenges with the viewers.
- Coding Math - Speaking of math! Watch this guy, he shows you how to program mathematics!
- PatrickJMT - He may not be a programmer, but having a good mathematical background will only make you a better programmer!
Just For Fun
- Python Plays GTA V - This is SOOO cool, watch this guy teach python how to drive in GTA V.
EDIT: Added more links information!
Alexander Davison
65,469 PointsAlexander Davison
65,469 PointsGreat answer :)
Jacob Mishkin
23,118 PointsJacob Mishkin
23,118 PointsThat is a great list!
Dane Parchment
Treehouse Moderator 11,077 PointsDane Parchment
Treehouse Moderator 11,077 PointsThanks! I have more specific links if anyone is interested in websites that offer great articles/tutorials, or sites that make learning programming more fun!
Jacob Mishkin
23,118 PointsJacob Mishkin
23,118 PointsYou should totally post them!
Dane Parchment
Treehouse Moderator 11,077 PointsDane Parchment
Treehouse Moderator 11,077 PointsAdded more links to articles, tutorials, and videos. Never stop learning everyone! Enjoy the summer!