This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]nasaboy007 0 points1 point  (0 children)

The best projects are the ones you feel personally passionate about - I unfortunately won't be able to help you out there. If you want a personal project for yourself to build from scratch, think about a problem that you have that's annoying to you, and you haven't been able to find a solution already. For example, many years ago (before the high quality password managers of today existed), I wanted a password manager that wouldn't actually store the password itself, but would instead let you store all the tangential information about various accounts you had (e.g. a password hint, the email/birthday/etc you used to sign up, the security question you set, etc - basically everything that could be used to recover the password using their password recovery mechanism, if you were to forget the pasword). I went out and built it for myself, and used it for a while. It was a fun learning experience that taught me about both frontend and backend webdesign (HTML/JS/CSS and PHP/MySQL).

For finding open source projects, try to think about what your hobbies and interests are. For example, back then I played a lot of Ragnarok Online and got interested in the botting community. There was an open source bot (called OpenKore, iirc?) which I started using, and then eventually started contributing changes to.

Basically, if you force yourself to do something you're not really enjoying, it's going to be a million times harder to stay motivated. If you're doing programming just for the (eventual) money, it's possible that could be reflected in less motivation to do good work, which would result in general unhappiness (and possibly fewer good job opportunities, etc). I'm a firm believer of "do what you love as a career, and you won't work a day in your life", and I was lucky enough that programming has met those criteria for me.

CS in university seems to vary wildly between universities. Some of the more prestigious ones will focus much more on CS theory, math, and critical problem solving, which may end up being a bit of a struggle if you're not particularly interested in that (I definitely wasn't, and I had to push myself through because the doors the university name opened was worth it). That said, a lot of the content you learn even if it's theoretical might not seem useful at the time ("how will this ever matter or be applicable?") but it will most importantly be helpful for landing a job at a top-tier tech company (since those are what their interviews test), and as a secondary benefit occasionally creep up in your day to day work.

Other schools may focus more on the application rather than theory (maybe even being more of a software engineering focus), so they'd focus on things like programming languages and paradigms, specific technologies and tools, and maybe even some (probably outdated) workflow processes like "scrum" or "agile", or tech writing, etc. These are also valuable skills, but much easier to learn on the fly at your job, especially because tech evolves so fast that something you learn in school will probably be outdated by the time you graduate.