Latest / DevQuestions with Tim Corey / 015 What Should I Have In My Portfolio? What Makes For Good Portfolio Content?
Transcript
- 0:00SPEAKER_00: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:03SPEAKER_00: Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology.
- 0:12SPEAKER_00: If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered.
- 0:19SPEAKER_00: Now, here's your host, expert developer and online educator, Tim Corey.
- 0:25SPEAKER_01: What should I have in my portfolio?
- 0:28SPEAKER_01: What makes good portfolio content?
- 0:31SPEAKER_01: Should I use the code that I create in a tutorial as portfolio content?
- 0:37SPEAKER_01: How about the stuff I did in school?
- 0:39SPEAKER_01: Should I put that in my portfolio?
- 0:42SPEAKER_01: These are some great questions that come up a lot.
- 0:44SPEAKER_01: So let's talk about these questions in today's episode of DevQuestions.
- 0:50SPEAKER_01: Now, your portfolio has a purpose.
- 0:53SPEAKER_01: So let's start with the purpose of your portfolio.
- 0:57SPEAKER_01: Because it's not just a place to stuff your code.
- 1:00SPEAKER_01: Your portfolio is designed to show off what you can do.
- 1:05SPEAKER_01: It's designed to show an employer, this is my level of coding ability.
- 1:11SPEAKER_01: Because when if you're on the hiring side, if you are sitting behind a desk reviewing resumes, it may feel overwhelming because you don't know is this person good at their job or not.
- 1:28SPEAKER_01: They have 10 years experience according to the resume, but maybe they're horrible.
- 1:33SPEAKER_01: This other person, they don't have any experience or very little, it seems like, but yet if I look at their code, I would love to hire them.
- 1:43SPEAKER_01: So how do I determine who to hire?
- 1:46SPEAKER_01: Well, a portfolio really helps because it gives the hiring manager something to look at, something to say, okay, I I like this flow, I like how this is written, I see the complexity, the logic, or the lack of complexity, I see how easy it is to read or how complicated it is, how messy it is versus how clean it is.
- 2:10SPEAKER_01: There's a lot to evaluate when you see code.
- 2:13SPEAKER_01: Because remember that if you're being hired to be a software developer, you're being hired to write code.
- 2:21SPEAKER_01: So evaluating the code that you write is a great way to evaluate you as a developer.
- 2:30SPEAKER_01: So your portfolio can be very important.
- 2:34SPEAKER_01: But how do you do it right?
- 2:35SPEAKER_01: What do you put in there, especially when you're just getting started, whether you're just out of college or don't have a degree at all, and you just want to start out, or maybe you're switching from a different career.
- 2:48SPEAKER_01: You need to show off something, right?
- 2:50SPEAKER_01: But but what?
- 2:52SPEAKER_01: Well, I would encourage you to create a project for your portfolio.
- 2:59SPEAKER_01: Don't create a project for a tutorial and then put it in your portfolio.
- 3:05SPEAKER_01: If you have nothing else, it's better than nothing.
- 3:08SPEAKER_01: However, when I hire you, you're not gonna follow along with what I teach you and then just mimic that, and that's your work.
- 3:19SPEAKER_01: You have to work on your own, right?
- 3:22SPEAKER_01: Well, a tutorial walk you through how to do something.
- 3:26SPEAKER_01: Even though you did it along with it, or maybe even tweaked it a little bit, the reality is someone else walked you through that.
- 3:33SPEAKER_01: And it can be quite obvious that's not yours, or it doesn't feel like it's a great um example of what you would do, it's more of an example of what somebody else would do that you mimicked or tweaked a little bit, and that's not a good representation of you.
- 3:54SPEAKER_01: Now, if you can't build an application on your own, that's something to work on.
- 4:00SPEAKER_01: Because even if you got in the door, and even if you got hired, guess what you have to do now?
- 4:07SPEAKER_01: Build an application on your own.
- 4:10SPEAKER_01: So you don't want to be in a job and be in over your head.
- 4:14SPEAKER_01: You want to be prepared for the job that you get.
- 4:17SPEAKER_01: Don't game the system to try and get a job that you're not qualified for.
- 4:22SPEAKER_01: That just leads to misery and frustration on your part and your management's part.
- 4:28SPEAKER_01: Don't do that.
- 4:30SPEAKER_01: So, how do you build a project for your portfolio?
- 4:34SPEAKER_01: Well, the first thing I would say is pick something that solves a problem, a real problem.
- 4:41SPEAKER_01: It does not have to be a big problem.
- 4:44SPEAKER_01: In fact, it should not be a big problem.
- 4:48SPEAKER_01: It should be a tiny problem.
- 4:50SPEAKER_01: Something simple, but solve a real problem.
- 4:55SPEAKER_01: When I look at portfolios and I see projects that have no purpose for existence, I go, yeah, it's probably a follow-along tutorial.
- 5:05SPEAKER_01: It does not fill me with the the comfort to say, yes, that's their code.
- 5:12SPEAKER_01: So we'll get back to how to get there.
- 5:15SPEAKER_01: But for now, if you can pick a a project that solves a small problem and build something for it, that's great.
- 5:25SPEAKER_01: And again, this is small because if you build something that's big, you'll never finish it.
- 5:31SPEAKER_01: Or even if you do finish it, you spent so much time and effort on it, and it's it's one project.
- 5:38SPEAKER_01: It may have a a manager look at for a little bit, but they're not going to spend all day on it.
- 5:45SPEAKER_01: So you may actually have the opposite effect of what you want.
- 5:48SPEAKER_01: So let's talk through what makes for a good small project.
- 5:53SPEAKER_01: You might need ideas, not a problem.
- 5:55SPEAKER_01: First of all, look around you and look to see anything that you do repetitively.
- 6:02SPEAKER_01: Or your your wife or your partner or your kids or your parents.
- 6:08SPEAKER_01: Does someone around you do something repetitively?
- 6:12SPEAKER_01: It doesn't have to be every day, 20 hours a day.
- 6:15SPEAKER_01: Just do they do something once in a while, or do you do something once in a while that you repeat?
- 6:21SPEAKER_01: Maybe it is here's an example.
- 6:24SPEAKER_01: For me, I use Notepad.
- 6:27SPEAKER_01: The the very, very simple notepad on Windows.
- 6:32SPEAKER_01: But there's some things in there that I have to do myself manually.
- 6:37SPEAKER_01: For example, saving them.
- 6:38SPEAKER_01: If I don't save my notepad files, then my computer reboots, they're gone.
- 6:44SPEAKER_01: Or I can't shut down.
- 6:46SPEAKER_01: I feel like I have to keep my computer always on or in sleep mode.
- 6:49SPEAKER_01: Well, what if you create a little notepad clone?
- 6:54SPEAKER_01: None of the advanced features, just a place to type stuff that saved in the background to a temporary database.
- 7:06SPEAKER_01: That solves a problem.
- 7:08SPEAKER_01: Solves an interesting problem, actually.
- 7:10SPEAKER_01: In fact, if you build something like that, I would love to hear about it.
- 7:14SPEAKER_01: Now, there's other areas as well.
- 7:16SPEAKER_01: Maybe you always delete files from your temp folder because you know what?
- 7:22SPEAKER_01: You put stuff in there and then you clean it out, or your downloads folder.
- 7:26SPEAKER_01: You're always downloading stuff off the web, using it for a little bit, maybe PDF documents, that kind of thing.
- 7:31SPEAKER_01: But that folder fills up and it fills your hard drive up.
- 7:35SPEAKER_01: What if you create a little service that ran in the background and every night or every um, you know, after the file's been there for so long, it deletes it.
- 7:44SPEAKER_01: There's something for your portfolio.
- 7:46SPEAKER_01: You see, when you solve a problem, then you have an excuse for doing things a certain way.
- 7:55SPEAKER_01: Because if the boss looks at this and says, Man, it doesn't work with the web, and you say, I understand, but that wasn't the point of the project.
- 8:06SPEAKER_01: The point of the project was to delete files on a hard drive.
- 8:10SPEAKER_01: That means a service, not a web application.
- 8:13SPEAKER_01: Now, if you're hired to be a web developer, it'd probably be good to have some web applications in there, but it's okay to have one that's not, because it solves a specific problem.
- 8:24SPEAKER_01: And when you say you introduce this project as this project solves this problem, and here's where we're using it, even as just your computer, your computer and your spouse's computer, doesn't matter.
- 8:39SPEAKER_01: You're using it.
- 8:40SPEAKER_01: And maybe even open source the project, give it away, and let others use it.
- 8:47SPEAKER_01: Even if five people do, you're now an open source maintainer.
- 8:52SPEAKER_01: You now have a little bit more credibility.
- 8:56SPEAKER_01: You now have helped somebody else with your portfolio item.
- 9:02SPEAKER_01: And so with this, you're not just showing off code.
- 9:06SPEAKER_01: You're showing off a finished product.
- 9:08SPEAKER_01: You're saying, I had a vision for a product, and I met that vision.
- 9:13SPEAKER_01: Well, now you're not just standing on the strength of your code, you're also standing on the strength of your vision.
- 9:22SPEAKER_01: And so a a hiring manager can look at that and look at from a couple different angles and see the value that you provide.
- 9:31SPEAKER_01: So those are great portfolio pieces.
- 9:34SPEAKER_01: Something that solves a small problem.
- 9:37SPEAKER_01: And there's lots of small problems.
- 9:40SPEAKER_01: I've got lists of small problems to solve sometime.
- 9:44SPEAKER_01: And what I do is I keep a record in my phone.
- 9:47SPEAKER_01: I actually use the little notes in Apple iPhone.
- 9:50SPEAKER_01: Um, there's a little notes app, and I use that all the time to write down ideas.
- 9:55SPEAKER_01: And then I'll compile them to a list and use that as hey, you have a little free time, create a little app.
- 10:02SPEAKER_01: Put those in your portfolio.
- 10:03SPEAKER_01: All right.
- 10:04SPEAKER_01: So that's that's one piece of it.
- 10:06SPEAKER_01: The other might be, man, I'm not at that point yet.
- 10:09SPEAKER_01: I'm still learning.
- 10:10SPEAKER_01: I'm not quite at the point where I can put together a full application that does something.
- 10:16SPEAKER_01: I just want to be hired as an intern, hire as a junior developer who's just getting started.
- 10:22SPEAKER_01: There's still things you can put in your portfolio.
- 10:25SPEAKER_01: In fact, what I encourage you to do is create a portfolio that is your list of things you're learning.
- 10:33SPEAKER_01: Have your list, make sure it's organized.
- 10:36SPEAKER_01: Have your list of things that you want to learn.
- 10:39SPEAKER_01: So you're saying, you know what?
- 10:41SPEAKER_01: I've learned the basics of C sharp, but now I need to learn, you know, maybe logging and dependency injection and solid.
- 10:49SPEAKER_01: So write the S O L I D, all those and they're dry.
- 10:53SPEAKER_01: I want to learn all these different things.
- 10:54SPEAKER_01: I want to learn link and want to learn how to use the dictionary of type T U.
- 10:59SPEAKER_01: You know, like I want to learn all these different things.
- 11:02SPEAKER_01: Well, list them out.
- 11:04SPEAKER_01: And then as you start learning them, create those two to five practice projects.
- 11:11SPEAKER_01: You know the ones I keep talking about, I keep telling you, create practice projects.
- 11:16SPEAKER_01: Well, one of those could go in your portfolio.
- 11:20SPEAKER_01: Now, remember, I said before, don't just follow tutorial.
- 11:25SPEAKER_01: Well, yes, that's true.
- 11:27SPEAKER_01: Don't just mimic someone's tutorial and put it in your portfolio.
- 11:31SPEAKER_01: But create your own.
- 11:32SPEAKER_01: Totally different.
- 11:34SPEAKER_01: Create just enough to test out that piece and then document it.
- 11:40SPEAKER_01: Say, this application is designed just to show off what dependency injection can do, or what link can do, or what the if-else statement can do.
- 11:52SPEAKER_01: And you show off what you learned about that topic in that code.
- 12:00SPEAKER_01: What that does is it shows the progression of your learning.
- 12:05SPEAKER_01: It shows off the things that you're learning and the order you're learning them.
- 12:09SPEAKER_01: And it shows where you have to go yet and what you're still working on.
- 12:14SPEAKER_01: It shows initiative.
- 12:16SPEAKER_01: It shows that you aren't just sitting back waiting for someone to tell you what to do next.
- 12:22SPEAKER_01: You are on top of it.
- 12:23SPEAKER_01: You are proactive and you have a list to work through and you're working through it.
- 12:29SPEAKER_01: What I'd probably do is I'd probably put all those projects on GitHub and then have a project dedicated to your portfolio or your learning path that has that path of things you're going to learn.
- 12:43SPEAKER_01: And then every time that you do one of those things, you change the bullet item from just text to a link and link to that open source project and talk about a little bit what it is and why it's important that you learned it.
- 13:00SPEAKER_01: And you go through that.
- 13:02SPEAKER_01: Could you imagine if you showed an employer as a junior developer, hey, here are the 150 things that I've learned so far about C sharp, and here's the next hundred.
- 13:13SPEAKER_01: That'd be pretty impressive.
- 13:15SPEAKER_01: And it would show your progress.
- 13:18SPEAKER_01: Imagine even further, if you put on your resume, hey, I've learned a hundred, these 150 things, I've got 100 to go.
- 13:25SPEAKER_01: And when you show up for the interview, you say, actually, now it's 95.
- 13:29SPEAKER_01: I learned five more things between when I turned my resume in and when you called me for an interview.
- 13:35SPEAKER_01: That shows commitment.
- 13:37SPEAKER_01: It shows progress.
- 13:39SPEAKER_01: It shows that you are willing to learn, you're teachable, and that you want to grow.
- 13:45SPEAKER_01: So even if you don't have the ability yet to create a full application, you still have the ability to create something that shows off your characteristics and your skill level in a way that is genuine and will be more likely to be met with a positive outcome.
- 14:08SPEAKER_01: So build your portfolio.
- 14:11SPEAKER_01: Build it using real things, not my samples, not somebody else's samples, not the uh the stuff that you were assigned in college or in high school.
- 14:25SPEAKER_01: Don't do that.
- 14:27SPEAKER_01: Build something on your own that you create that's not going to look like everybody else's.
- 14:34SPEAKER_01: And from that, you will have something to show off that is of value.
- 14:39SPEAKER_01: Okay?
- 14:39SPEAKER_01: That's what I think about how to build a portfolio.
- 14:42SPEAKER_01: That's what I'm looking for when I'm evaluating portfolios.
- 14:46SPEAKER_01: I hope it's been helpful.
- 14:47SPEAKER_01: Hope you've enjoyed this episode.
- 14:49SPEAKER_01: Thanks for listening.
- 14:50SPEAKER_01: And as always, I am Tim Corey.
- 14:52SPEAKER_00: Thank you for joining us for this episode of Dev Questions.
- 14:55SPEAKER_00: Tim is committed to making it easier for you to become a developer.
- 14:59SPEAKER_00: If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions.
- 15:06SPEAKER_00: You can also send your questions to questions at Iamtimcore.com.
- 15:11SPEAKER_00: Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 15:18SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to IamtimCore.com and enroll in a course.