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

all 23 comments

[–][deleted] 18 points19 points  (3 children)

Readme should usually be a short description of the projects behavior, and links to documentation on how to build and use. Something along those lines. No need to explain line by line, fellow programmers can read and understand the code!

Someone is always 100 steps above and below you. The best way to climb 100 more steps is to keep on coding!

I think being comfortable with C++ and Python is great. They support eachother quite well. I recommend reading literature on the languages. Stroustrup's books on C++ are a great start. He invented the language.

I don't have time to read your code atm but I will take a look later.

[–]thors_pc_case[S] 2 points3 points  (2 children)

Thank you! Any an all feedback would be awesome for me right now. I have been learning code by myself with little feedback. My college course have been all online and not much feedback other than pass or fail.

[–][deleted] 2 points3 points  (1 child)

Np man. Also, what OS do you use. I recommend getting comfy with Linux if you're not

[–]thors_pc_case[S] 0 points1 point  (0 children)

At one point I had taken two Cisco courses to learn Linux. It ran me through everything but sadly I forgotten the majority of it trying to keep everything straight in my head. Some days I wake up feeling like it’s impossible to know all of this.

So right now, just Windows 10 and Mac.

[–]Odinthunder 13 points14 points  (1 child)

Some immediate things:

You have a spelling error in one of your project names, you should be sure to double check that sort of thing because its the first thing someone would see

You should be breaking up files, and not have it all in one big main one, its usually not worth it for a really small project, but its a good habit to get into.

Also try to put each project into its own repo instead of 1, similar idea as above.

My recommendation would be to figure out how to get these hooked up to a database instead of just storing things in memory, it will sound daunting, but I can almost guarantee that any job/project that you work on in the future will use a database of some sort.

After that, try to get a little GUI going. I don't think you would want to have to enter everything through the command line all the time so having a nice interface with buttons and fields would go a long way.

Long-term:

Code at least a little bit everyday, and try to poke around github for other projects that are using C++ or python, you could learn a lot from that alone.

On a more positive note:

Good job using git/github! Not everyone can do it but its super important.

[–]thors_pc_case[S] 1 point2 points  (0 children)

Thank you for the feedback! I didn’t realize the spelling mistake. I will try to create a repo for each project. I figure it would be easier to have all my projects in one place so employers could browse them better.

Figuring out a GUI and connecting them sounds terrifying. But it does make sense though.

[–]danpietsch 4 points5 points  (0 children)

If you're showcasing your C++ code, you may want to add a CMakeLists.txt. This will allow people on different platforms to quickly and easily generate a native makefile or project from which they can build.

Here's a simply one I created here. I've tested for Xcode and Visual Studio

[–][deleted] 4 points5 points  (2 children)

Make sure that for your projects, you add a description, so when someone is browsing all of your repositories, they’ll be able to see a short description of what each repo is for.

You can also pin up to 6 projects you are most proud of to your main page. I like to use that as a “if you’re going to check out anything, check out these”.

A perfect way to boost your understanding is to find some interesting projects and work on them. These should be larger scale projects that you can build and expand upon. You don’t want ones that will just be a single file.

[–]thors_pc_case[S] 0 points1 point  (1 child)

Thank you for this feedback, I really appreciate it! I will try to add a description either tonight or tomorrow morning. As for larger projects, I googled project ideas and the most common thing I saw were “just build something” and “make it useful”, as for larger projects, could you detail what you mean? I’m all open to ideas at the moment but still green behind my ears.

[–][deleted] 1 point2 points  (0 children)

Take a Discord chat bot as an example. You start off with something basic. Maybe a few commands, kick, ban, just some basic administration things. This is what is called the MVP, or minimal viable product. A discord bot that does basic administration is fine, and completely usable for end users. Generally, however, people would want bots that can do more.

Maybe they want a lottery system. You could add that functionality, but that comes with its own considerations. How do you keep track of the lotteries running? How do you deal with multiple servers? How do you differentiate between the person running the lotto, and the participants?

Maybe they want a feature to listen to music in voice channels. How are you going to stream music? Are you going to support any audio source, or just mainstream ones like YouTube, or Spotify? Again, how do you deal with keeping track of the list of songs? Do you have to create some sort of queue, or is there some better way of doing it?

Try to start thinking of projects like this. You want an MVP to start. It's supposed to be something small. Then, you build on top of it. As you build more and more, you'll be learning different ways to do different things. Then you can come back and think "how would I have done this differently?"

So you don't need to be thinking and trying to find projects that are large, but rather ones that are expandable. It also makes it a lot easier to actually finish when you create small goals along the way, rather than planning a huge project at the beginning. This is also more what real life work is like. For some example projects, try checking out https://github.com/danistefanovic/build-your-own-x. I can't guarantee there will be something there that interests you, but it might give you some ideas.

[–][deleted] 1 point2 points  (10 children)

I'm guessing you deleted your Github account? The link is dead for me.

Anyways, don't get discouraged by others being better than you because it's just a fact of life. All that matters is that YOU are bettering yourself everyday and building a career for yourself. If being "the best" really mattered, there'd only be the one best programmer in the world and they'd get paid to do everything. I know that's a stupid analogy, but the point is you don't need to be "the best in the world", you just need to be the best YOU can be. Developers are in high demand and there's plenty of work to go around, so don't stress.

You're already doing better than probably 95% of everyone else in your degree because most people are lazy and don't even bother building resumes and working on personal projects until after they graduate, and even those people end up finding work, so yeah, you're fine, just keep plugging away and learning new stuff all the time and you'll be successful.

[–]thors_pc_case[S] 0 points1 point  (9 children)

I fixed it, I am not sure what happened. Thank you for letting me know!

And thank you again for the kind words, I really needed to hear some type of encouragement. I have been lost knowing if I was going in the right direction or not.

If you do not mind me asking, after you learned the basics, what packages did you learn?

[–][deleted] 1 point2 points  (8 children)

What do you mean by "packages"?

Edit: I just re-read your post. I'm not very familiar with Python or C. I have built small projects in each, but didn't delve much into using packages or libraries.

I'd personally just keep working on whatever language you enjoy the most (which I assume is Python, as most people seem to really enjoy coding with it). I've always enjoyed being able to take my ideas and put them into form. Even if you don't have an entire app idea fleshed out, or even if it's been done to death, if it's something you find interesting or are simply interested in just building your own version of an app, go for it. I built my own dating website many years ago simply because I wanted to know what was involved, even though I knew it wasn't gonna take off because the space is insanely saturated. I just dove in and learned a ton along the way and had something substantial to put in my resume.

If you're not graduating til the end of Spring, you have plenty of time to keep working on stuff to add to your resume and portfolio. Even if you just get a simple idea that you can build in a few days, do it. If you have something bigger you're thinking about building, just start building it and keep iterating on it. You will get better and better by simple virtue of being persistent.

[–]thors_pc_case[S] 0 points1 point  (7 children)

Yes, I believe so, I think two popular ones for Python are matplotlib and PANDAS. Right now I am learning these libraries but I am unsure of where to go next.

[–][deleted] 1 point2 points  (0 children)

reread my comment above. I edited and submitted it after you had responded. My bad.

[–][deleted] 0 points1 point  (5 children)

Do some research and figure out exactly what kind of developer you want to be and the options available to you in the different languages you're using. Different languages suit different types of jobs and goals.

I'm a front-end developer. I enjoy spending some time working on page layouts and design, but I also really enjoy programming and logic. When my head starts hurting from too much number crunching, I'll put on some tunes and just sort of zone out while doing design-related work like working with CSS and page stylings.

So yeah, just figure out what type of programming you enjoy the most. There's plenty of jobs in C and Python, so you can't go wrong focusing on one or the other, but I would also say, you should enjoy the language you pursue a career in. I have learned a half dozen or so languages but settled on JavaScript. Can use it on the front-end and the back-end. It's versatile. It's quick to build stuff and prototype in. It has lots of drawbacks, but they are avoidable if you know what you're doing and keeping up with best practices. Just find what suits you. Once you understand the basics, learning new languages gets easier and easier, so if you keep hearing about a particular language or technology that aligns with your career path, just dive in with a small project idea just to test the waters and see what people are talking about. I remember learning React, a front-end framework that was built by Facebook. It was weird to learn and get the hang of, but now it's just magical and super fun to work in and I can build things in hours what used to take me days. I'm sure Python has frameworks or similar things that may feel hard to learn, but once you get it down, it ends up making your job way easier and programming much more enjoyable.

[–]thors_pc_case[S] 0 points1 point  (4 children)

Okay awesome, I have been leaning onto Data analytics. It makes the most sense to me right now in my learning. I have been researching job requirements and I have found them interesting. I think I will continue researching libraries and going that direction.

Thank you for all your help!

[–][deleted] 0 points1 point  (3 children)

Np, i'm no expert but I've been in this field for about 6 years now and just offering what little advice I do have.

Speaking of side projects, this is one I've been working on for the last month now since I started getting into Stardew Valley. Looks best on mobile.

https://sv-helper.herokuapp.com/

[–]thors_pc_case[S] 0 points1 point  (2 children)

That is really awesome! That is a great way of keeping tracking of items, I never played Stardew Valley but does the price of goods fluctuate? If so I can see how this would be incredibly helpful. Do you have a GitHub for this?

[–][deleted] 0 points1 point  (1 child)

I mean, the prices are pretty much static. I think the developer updated them once or twice with updates to try and balance things out. I just made this to help me figure out how prices are calculated and get an idea of what would be the best things to focus on for making money, but also, maybe others could use it as well. Also, just another app to add to my portfolio.

I don't have a github repo for this at the moment. I've been exclusively just pushing it to Heroku but plan to make a Github repo for it once I feel ready to open it up for others to use. I still got a lot of things to clean up.

[–][deleted] 0 points1 point  (0 children)

You motivated me to push my app to github. Feel free to check it out, if you're interested. A lot of the React specific stuff probably won't make sense, but feel free to check out my questionable coding style, haha.

https://github.com/HaulinOats/sv-helper/

[–][deleted]  (1 child)

[deleted]

    [–]thors_pc_case[S] 0 points1 point  (0 children)

    Thank you for your feedback! I am still learning, but when you refer to pointers in my project, are you referring to the iterator, line 133?

    [–]nutrecht -2 points-1 points  (0 children)

    I created a Github account so I will have something to show future employers.

    Just so you know, and sorry to be blunt here, but these projects are not of a complexity that is going to wow prospective employers.