18 votes

Any college CS majors here? Any tips for one?

Hey everyone. I’m a Computer Science major who feels very behind. I don’t have any substantial projects to put on my resume. I look at basic open source stuff and can’t understand it.

I’m currently attending WGU online, but also work full time so I don’t have a ton of free time to learn or work on side projects.

Anyone have advice for a guy in my scenario? I ended up dropping out of college a couple times during COVID and now I’m just trying to get back on the right path.

The language I know best is Java, but I’ve been trying to learn C++ and web development as well. Applied for internships but no luck so far, I think I need to make some better projects.

37 comments

  1. [9]
    Beenrak
    Link
    If you truly don't have spare time to work in projects I don't really know how you can improve. The only way to build a portfolio is to pick side/hobby projects and build them. This is just...

    If you truly don't have spare time to work in projects I don't really know how you can improve.

    The only way to build a portfolio is to pick side/hobby projects and build them. This is just something you are going to have to make time for.

    I wouldnt recommend open source projects. Just make things for yourself. Try to do things that aren't just test projects. Target things that you can show off like a website, simulation, data visitation; whatever you find interesting.

    Just make sure you finish whatever you start. No one wants to see a GitHub with 10 started projects if none are finished

    Good luck!

    8 votes
    1. [8]
      Lost_Grounds
      Link Parent
      You’re right, I do need to find time and do projects. I’m just overwhelmed. I need to pick something and stick with it, do you have any suggestions? I took the next 6 days off work so I can...

      You’re right, I do need to find time and do projects. I’m just overwhelmed. I need to pick something and stick with it, do you have any suggestions? I took the next 6 days off work so I can regroup and get some school work/projects started. I had 50 hours last week so I wasn’t able to do anything then.

      1. [7]
        Beenrak
        Link Parent
        That's a bit too vague to answer for you. What do you find interesting in the space? What kind of job are you looking for?

        That's a bit too vague to answer for you. What do you find interesting in the space? What kind of job are you looking for?

        1. [6]
          Lost_Grounds
          Link Parent
          I’m looking for any kind of developer job, but probably Java or C++. As for what specifically I’d be coding, I don’t know yet. I apologize for being vague, I just want to use this week to my...

          I’m looking for any kind of developer job, but probably Java or C++. As for what specifically I’d be coding, I don’t know yet.

          I apologize for being vague, I just want to use this week to my advantage. By that I mean i’ll probably start working on a project, so I need to figure out what kind of projects would look good on a resume, and what I need to learn to code the project, etc. Right now I’m interested in making a 2D game in Java, but I wasn’t sure if that’s too “immature” for a resume

          1. [5]
            Beenrak
            Link Parent
            What are some examples projects you did for school? What is the biggest thing you've made

            What are some examples projects you did for school? What is the biggest thing you've made

            1. [4]
              Lost_Grounds
              Link Parent
              I’ve not made any projects for school yet. The biggest things I’ve made are Minecraft plugins. I used to go around to servers and make them plugins for $10-$20. I don’t have any of the code for...

              I’ve not made any projects for school yet. The biggest things I’ve made are Minecraft plugins. I used to go around to servers and make them plugins for $10-$20. I don’t have any of the code for them anymore.

              I made a maze game in Java years ago but I followed tutorials for that. Lastly, I recently made a personal website using HTML, CSS, and JS. That’s pretty much the extent of my personal projects so far, none really are good enough for a resume.

              1. [3]
                Beenrak
                Link Parent
                Honestly, I don't think you are ready for a development job. I wouldn't worry so much about your resume and instead focus on learning. If you are interested in making a game in Java, that's a fine...

                Honestly, I don't think you are ready for a development job. I wouldn't worry so much about your resume and instead focus on learning.

                If you are interested in making a game in Java, that's a fine project but keep it very very simple. Games are extraordinary complex to program and even things that seem simple will take hundreds of hours. Do something like space invaders. You need to start somewhere, as you do projects you will be able to do more complex things.

                This is all assuming you have a good basic understanding of programming in the first place. Either way you need raw experience more then a resume right now.

                1 vote
                1. [2]
                  Lost_Grounds
                  Link Parent
                  I’m not looking for a development job, just an internship and projects to work so that I can improve. The experience is what I’m looking for I just don’t know how to get it. Thanks for all the...

                  I’m not looking for a development job, just an internship and projects to work so that I can improve. The experience is what I’m looking for I just don’t know how to get it. Thanks for all the advice, I will try to start coding projects more frequently and learning as much as I can.

                  1 vote
                  1. Beenrak
                    Link Parent
                    Internships are development jobs, at least at my company. Unfortunately for most work in the field you will simply need to have previous experience. The good news is there is an overflowing amount...

                    Internships are development jobs, at least at my company. Unfortunately for most work in the field you will simply need to have previous experience.

                    The good news is there is an overflowing amount of knowledge, examples, and tutorials on just about anything you could possibly be interested it. Good luck with your career, so long as you make time to improve you skills and build a set of example projects to show off during your interview process, you'll do fine.

                    2 votes
  2. [5]
    Comment deleted by author
    Link
    1. Lost_Grounds
      Link Parent
      I probably need to pick one area (Java, C++, web development) and build a project with it instead of trying to handle multiple things at once. Since I know Java I was considering looking up the...

      I probably need to pick one area (Java, C++, web development) and build a project with it instead of trying to handle multiple things at once.

      Since I know Java I was considering looking up the documentation for LibGDX and following their tutorials to make a basic game, how’s that idea sound?

      1 vote
    2. [3]
      zeda
      Link Parent
      Big +1. I work with a guy who's had 0 college-level experience with programming but has a really good head on his shoulders for learning new stuff. I've had an easier job training him than anyone...

      In general, I’m looking for someone who had shown that they can learn

      Big +1. I work with a guy who's had 0 college-level experience with programming but has a really good head on his shoulders for learning new stuff. I've had an easier job training him than anyone on my team.

      1 vote
      1. [2]
        Lost_Grounds
        Link Parent
        How do you prove this on a resume?

        How do you prove this on a resume?

        2 votes
        1. zeda
          Link Parent
          Considering I'm considering making a change myself, good question! What impresses me about my colleague is how quickly he grasps the key stuff and asks pertinent questions, so I think it's more to...

          Considering I'm considering making a change myself, good question!

          What impresses me about my colleague is how quickly he grasps the key stuff and asks pertinent questions, so I think it's more to do with how effectively you listen and communicate than anything that can be put on a static doc.

          I’m looking for someone whose experience shows that they learn and can then deliver. How do you think you can do that through your resume and portfolio?

          My approach to this would be a repo or devlog, but more importantly: being ready to communicate what you worked on, challenges you encountered/how you dealt with them, etc.

          1 vote
  3. [6]
    Pieisawesome
    Link
    Your best bet is to contribute to OSS. Once you have done a few tutorial apps, (don't copy and paste. Read what they write, then reproduce it without looking) you'll need something more...

    Your best bet is to contribute to OSS.

    Once you have done a few tutorial apps, (don't copy and paste. Read what they write, then reproduce it without looking) you'll need something more challenging than that. Oss will give you something closer to the structure of working at a company and dealing with unknown or unfamiliar requirements and implementing them.

    In general, for web, learn containers and kubernetes, helm, etc. From there, learn testing, CQRS, DDD, event driven, openApi/swagger

    I've been a SWE for 12 years now and I've mentored dozens of engineers. Let me know if you have anything more specific

    3 votes
    1. [5]
      Lost_Grounds
      Link Parent
      I appreciate the advice, anything else you have would be great. I’m not super interested in web development, I want to focus on Java and C++. I’m only forcing myself to learn web development...

      I appreciate the advice, anything else you have would be great. I’m not super interested in web development, I want to focus on Java and C++. I’m only forcing myself to learn web development because I see so many jobs and internships for it, and I don’t want to limit myself in the future.

      If you were in my position and had 6 days off work to focus on this what would you do to get started?

      1. [4]
        Pieisawesome
        Link Parent
        I'm confused, in the OP you said web development. For java, learn how to build java thick apps (swing). C++ you should do Arduino and RPI stuff, build embedded development stuff. You could write a...

        I'm confused, in the OP you said web development.

        For java, learn how to build java thick apps (swing).

        C++ you should do Arduino and RPI stuff, build embedded development stuff.

        You could write a Linux kernel mod and build a virtual file system to hold doom files (I thinks it's a common project for uni students).

        You can also write a driver for a virtual joystick or HID

        1 vote
        1. [3]
          Lost_Grounds
          Link Parent
          Thanks for the ideas! Yes I did say I was trying to learn WebDev, I want to have the knowledge of it so I don’t limit myself. I’m trying to prepare myself to take ANY developer job, but web...

          Thanks for the ideas! Yes I did say I was trying to learn WebDev, I want to have the knowledge of it so I don’t limit myself. I’m trying to prepare myself to take ANY developer job, but web development itself is the least interesting to me out of the three I mentioned.

          I have an Arduino I got for Xmas and haven’t opened yet, that’s a great idea. I’ll have to see what fun things I can do with it.

          1. [2]
            interrobang
            Link Parent
            If you don't enjoy web development, don't do it as a career. You'll be wanting to jump off a bridge 5 years into a 40-year work journey, and it becomes increasingly harder to switch as you get...

            If you don't enjoy web development, don't do it as a career. You'll be wanting to jump off a bridge 5 years into a 40-year work journey, and it becomes increasingly harder to switch as you get older because a certain level of competence is expected when you don't look like a junior anymore.

            That isn't to say you shouldn't explore many different things to find what you like! But don't force yourself just because you think there are "lots of jobs."

            2 votes
            1. lovetheraven
              Link Parent
              Interesting to hear that, and definitely second this advice! Much better to wait a little bit and work a job that excites you (at least in the beginning lol) than be stuck in a career you dislike.

              Interesting to hear that, and definitely second this advice! Much better to wait a little bit and work a job that excites you (at least in the beginning lol) than be stuck in a career you dislike.

  4. Lost_Grounds
    Link
    I feel like this website probably skews a little older than Reddit, but figured I’d post anyway. I’m 22 years old, for anyone wondering.

    I feel like this website probably skews a little older than Reddit, but figured I’d post anyway. I’m 22 years old, for anyone wondering.

    2 votes
  5. skeletorfw
    Link
    I come from a slightly different perspective to a lot of people as I'm predominantly a computational and imaging biologist. That said, I definitely echo what the others have said thusfar, getting...

    I come from a slightly different perspective to a lot of people as I'm predominantly a computational and imaging biologist. That said, I definitely echo what the others have said thusfar, getting your teeth into little projects and pushing yourself to learn new skills is the best approach to take. You gain a lot (not just in one language but generally) by taking the time to find a new problem to solve and then getting on with solving it. Honestly a lot of my earlier stuff was coding bots for reddit to solve my own needs and satisfy my own interests. That taught me a lot about threading, api interfacing, data management etc. Later work was more scientific but more focused on solving scientific problems at a low level and quicker than my colleagues with better documents.

    Long story short you can do a lot with a CS degree and you can get a lot out of it, but the only thing you really need is to want to do it.

    2 votes
  6. [3]
    ras
    Link
    I would start by building your own website. It doesn’t have to be flashy or use the latest hot frameworks, just basic html, css, and a sprinkling of js. Use that site to document things you learn...

    I would start by building your own website. It doesn’t have to be flashy or use the latest hot frameworks, just basic html, css, and a sprinkling of js. Use that site to document things you learn building other projects. Don’t get paralysis of choice. Start something small and finish it. Document it. Repeat.

    1 vote
    1. [2]
      Lost_Grounds
      Link Parent
      I have my own website actually with HTML, CSS, and a little JS. I just don’t know what to put on it, what do you mean by document things I learn? If I could find a way to PM you somewhere I can...

      I have my own website actually with HTML, CSS, and a little JS. I just don’t know what to put on it, what do you mean by document things I learn? If I could find a way to PM you somewhere I can show you the website.

      2 votes
      1. ras
        Link Parent
        Like others have said, pick a project you think you can complete from start to finish. As you're working on the project write some posts/articles on problems you encounter and how you solve them,...

        Like others have said, pick a project you think you can complete from start to finish. As you're working on the project write some posts/articles on problems you encounter and how you solve them, or new techniques/practices you encounter.

        To send a private message go to my profile by clicking my name on this comment. You should see a button to send a message.

        1 vote
  7. [2]
    belak
    Link
    I saw some really good advice the other day which might be helpful for you: pick something that's slightly beyond your abilities right now, and learn how to do it. Make sure you keep it small,...

    I saw some really good advice the other day which might be helpful for you: pick something that's slightly beyond your abilities right now, and learn how to do it. Make sure you keep it small, even smaller than you originally think.

    It shouldn't be far beyond your abilities because then it's easy to lose interest or get discouraged, but it should be enough beyond your abilities that you still learn something.

    As an example, one of my first personal projects was a small command-line todo-app. I was taking a "C for Java Programmers" course and so wanted to use my C knowledge from the course and built on that to learn basics of sqlite. I don't use the app any more, but it let me learn basics of databases which has served me well long term.

    At the beginning it starts as smashing concepts together, but you eventually learn how things work and stuff starts to click. It primarily takes time. It might not go as quick as you want, but if you make small steps, you'll get there.

    For me it spiraled in a sort of good way - a few years down the road I had one friend who ran an IRC server and one who ran a Discord server. I already had an IRC bot from a previous project, so I learned a bit about the Discord API and built a bridge between them.

    At the moment, I've got an eInk display (which I've used for other smaller projects) and I'm working on turning it into a dashboard with tasks I want to do for the day and upcoming meetings.

    I don't know what's after that, but I'm excited to find out.

    1 vote
    1. Lost_Grounds
      Link Parent
      I think I have a couple ideas in mind after reading your comment, thanks!

      I think I have a couple ideas in mind after reading your comment, thanks!

      1 vote
  8. lovetheraven
    Link
    Not too sure if this fits with your personal plan, but from your comments to other responses, I’d recommend spending a little more time focusing on education before trying to get into dev work...

    Not too sure if this fits with your personal plan, but from your comments to other responses, I’d recommend spending a little more time focusing on education before trying to get into dev work (paid or personal projects).

    You mentioned that you were enrolled in college online; try to see if they offer project based classes in the fields you are interested in. Imo such classes thread the fine line between traditional education and real world development.

    In addition, if you have time I’d highly recommend supplementing your college education with courses from udemy and coursera, again focusing on the subfields of CS that you’re interested in.

    Lastly, regarding career, fwiw I’m still a student myself, so take this with a grain of salt… but, to me it seems pretty critical that you pick a career that you actually enjoy rather than focusing on employability immediately after college. If your finances allow, I’d recommend exploring different parts of CS (compilers, systems, data science, architecture and so forth) and try to see what really excites you before committing. Luckily it is easy to change careers in CS, but from what I’ve heard it is pretty easy to get pigeonholed into a field that you don’t really enjoy, which is never a good thing.

    Finally, just remember that everyone is on a different schedule, and there isn’t really anything like “staring late” in CS. As long as you put in the time and effort, you should be fine :)

    Edit:
    I forgot to include this, but a great way to get experience is to work as a undergrad research assistant, either during the year or summer. A lot of profs and grad students need help anyways, and as long as you show interest it’s not too difficult to get into a lab. It’s a great way to get real application-like experience, with a lower bar of entry than internships. Just cold email professors and grad students and show interest!

    1 vote
  9. [2]
    guillemet
    Link
    I didn’t study CS in school but became a software developer after a couple of jobs after college. My biggest advice is to start a blog and commit to posting every Monday or every Tuesday and...

    I didn’t study CS in school but became a software developer after a couple of jobs after college. My biggest advice is to start a blog and commit to posting every Monday or every Tuesday and Thursday or whatever. It’s best if you can come up with some sort of side project that you can blog about but sometimes I’d just pick a topic and write about it for a month. Every single potential employer who has seen my blog was really impressed and it has gotten me three jobs.

    (It’s not an impressive blog, just the fact that I was committed and blogged was what was impressive)

    1 vote
    1. Lost_Grounds
      Link Parent
      Thanks! If you’re comfortable sharing your blog could you DM it to me?

      Thanks! If you’re comfortable sharing your blog could you DM it to me?

  10. [2]
    j3n
    (edited )
    Link
    I hire interns occasionally for an organization you have definitely heard of. You don't really say what stage you're at with school, but I would suggest two basic directions: Get good grades. No...

    I hire interns occasionally for an organization you have definitely heard of. You don't really say what stage you're at with school, but I would suggest two basic directions:

    1. Get good grades. No one likes it on either side of the table, but GPA is a significant differentiating factor. This should be your number one priority until you achieve #2
    2. Get an internship. It really doesn't matter where as long as it's somewhat related to the field you want to work in after you graduate†. Once you have a real internship to put on your resume, the second internship and subsequent jobs become so much easier to land. You should do everything in your power to complete one or two internships before graduating. It's a lot easier to get internships than full-time positions, and many internships are only open to current students. Internships don't necessarily require any experience at all either. My organization has programs that hire high school students as interns, along with college students at all stages of their education.

    Personal projects and opens source contributions by students almost never rise to a level of complexity that meaningfully demonstrates competence in my experience.

    † CS isn't really a single field by the way. There are a massive range of development jobs out there and I'm not going to hire a web developer to write code for a moon rover. Yes, some skills are transferable, but you will be ill served by learning web development if you don't want a career making websites and you will be just as ill served learning C if you do want a career doing web development.

    1 vote
    1. Prism
      Link Parent
      Just to echo this, not all CS jobs have the same requirements - some will require qualifications and others prefer experience. I work in processor design and we hire exclusively bachelor degree...

      Just to echo this, not all CS jobs have the same requirements - some will require qualifications and others prefer experience.

      I work in processor design and we hire exclusively bachelor degree candidates with a 2:1 or above (UK or international equivalent). Experience doesn't factor in much because we don't expect graduates to know the industry - we asses more problem solving in interviews. I expect many large software jobs are similar in requiring a qualification, so I would recommend trying to narrow down what kind of work you like the sound of and researching job entry requirements.

  11. Turtle42
    Link
    Hey! You are way ahead of me. I am a 30 year old "photographer" but recently left my toxic job and am still figuring things out. Wow I feel old. I went to art school and have a BFA in photography....

    Hey! You are way ahead of me. I am a 30 year old "photographer" but recently left my toxic job and am still figuring things out. Wow I feel old. I went to art school and have a BFA in photography. Super lame. Over the last 9 months I have been diving into Linux. My dad has been a linux sysadmin my whole life so I've always known about Linux but only recently found it interesting as I get more and more into data storage because of my last job.

    There's so much more than just coding. And there's different kinds of code too. Learn programs for automating systems like ansible which uses YAML to control a whole fleet of systems and/or setup a homelab and just learn anything you can in hopes to find what scratches that itch which is what I'm doing. I really enjoy selfhosting my own blog with hugo. I used to not give myself credit and feel dumb and like I could never learn again but I feel like I've learned so much cool stuff.

    Although I am just a janitor now so take my advice with a grain of salt, lol. I'm still looking for other opportunities, ideally IT within the school district I'm in.

  12. Minori
    Link
    I'd recommend reading Clean Code. You don't even need to read it end to end! I've found the biggest thing for most intermediate programmers is learning how to write code that others can read and...

    I'd recommend reading Clean Code. You don't even need to read it end to end! I've found the biggest thing for most intermediate programmers is learning how to write code that others can read and understand. Unless you're only working on solo hobby projects you never reuse, it's worth learning how to write code that's super easy to read and follow.

    The best thing about picking up programming books is they're easy to read a chapter when you have time to learn at your own pace. There are some classics that are definitely worth reading if you want to understand software engineering at a design level too (I love the second edition of Head First Design Patterns).

    My limited experience is both self-taught and college-educated programmers really benefit from learning some of the finer points of software engineering like design patterns and what makes code clean or messy.

  13. glad_cat
    Link
    My only piece of advice would be to not drop out again, and get that degree. You also mention that you have a full-time job, how much time do you have daily for those studies? I think it's a...

    My only piece of advice would be to not drop out again, and get that degree. You also mention that you have a full-time job, how much time do you have daily for those studies? I think it's a question as relevant as the languages you know or projects you have done.

    My uninformed opinion is that you have to split tasks and define everything well (like time allocation, or how to be more disciplined if you need) before choosing to start projects like blogs or a GitHub portfolio.

  14. Turtle42
    Link
    Hey! You are way ahead of me. I am a 30 year old "photographer" but recently left my toxic job and am still figuring things out. Wow I feel old. I went to art school and have a BFA in photography....

    Hey! You are way ahead of me. I am a 30 year old "photographer" but recently left my toxic job and am still figuring things out. Wow I feel old. I went to art school and have a BFA in photography. Super lame. Over the last 9 months I have been diving into Linux. My dad has been a linux sysadmin my whole life so I've always known about Linux but only recently found it interesting as I get more and more into data storage because of my last job.

    There's so much more than just coding. And there's different kinds of code too. Learn programs for automating systems like ansible which uses YAML to control a whole fleet of systems and/or setup a homelab and just learn anything you can in hopes to find what scratches that itch which is what I'm doing. I really enjoy selfhosting my own blog with hugo. I used to not give myself credit and feel dumb and like I could never learn again but I feel like I've learned so much cool stuff.

    Although I am just a janitor now so take my advice with a grain of salt, lol. I'm still looking for other opportunities, ideally IT within the school district I'm in.

  15. artvandelay
    Link
    Hey, I recently graduated from university with a degree in Math&CS! I think your best bet for trying to improve your resume is to: Get good grades. From what I was told, it's best to have at least...

    Hey, I recently graduated from university with a degree in Math&CS! I think your best bet for trying to improve your resume is to:

    • Get good grades. From what I was told, it's best to have at least a 3.0 GPA, a 3.5 or above would be amazing.
    • Have projects related to your interests/jobs you want to get. I know you said you don't really have time to work on side projects but you don't need to have a massive, flashy project. Even a simple project can help your resume. You can just work on this over the course of a few weeks. For example, one of the projects I have on my resume is this little Telegram chatbot I made that would give me information about courses at my university. I basically copied this bot in one of my university discord servers where you could post a message like " [CS 225]" and it would then reply with the course name, number of credit hours, and a course description. Our uni had an API that would give you this info in XML so I just learned how to parse XML in Python and then just used existing Telegram chatbot example code from Github. I never really released the bot out to the public but it became a point of conversation in many of my interviews.
  16. miyu
    Link
    I will offer one (controversial) way forward for you, since I haven't seen it mentioned. Of course, I say this fully aware many others have given you great responses already. Focus not on finding...

    I will offer one (controversial) way forward for you, since I haven't seen it mentioned. Of course, I say this fully aware many others have given you great responses already.

    "He who would learn to fly one day must first learn to stand and walk and run and climb and dance; one cannot fly into flying." - Friedrich Nietzsche

    Focus not on finding a job, but building the skills necessary for you to succeed in one.

    Make sure you understand the difference between programming, software engineering, computer science, TCS, and computer engineering. A professional has their place amongst these broad crafts, so understanding their differences will help you define your path.

    If you haven't already, skim the slides of CS courses from S-tier universities. You can skim the contents of most engineering courses in a few days - if you retain even 30%, that's far better than the 0 you'd often have had prior. Begin with the intro classes, whose slides are meant for students who have less experience than you, who will comprehend their contents and succeed in their classes, so this is well within your means. Following, you will have the prerequisite knowledge to succeed in further classes (use the school's course dependency graph).

    If you're struggling with side-projects, these universities' homeworks are frequently 1. somewhat interesting and 2. bite-sized (so you can finish a project!) and 3. insightful and extensible. By getting through a CS curriculum - which I think can be skimmed with at least 30%-50% understanding by most, mostly requiring tenacity, you will get a broader understanding of the problem areas faced in the broader discipline. The saying goes, when you only have a hammer, everything looks like a nail; so this is a fast way to discover what other tools exist.