Key Skills Everyone Should Be Learning with Sharnecia Williams20:41 with Treehouse
An effective developer has a toolkit of soft skills and technical skills to help them succeed in their work. In this presentation, Software Engineering Manager Sharnecia Williams discusses the skills you should know so you are best prepared to join a workplace.
I'd like to welcome up our very first speaker of the day, Sharnecia Williams. 0:04 Sharnecia is an engineering manager at Mailchimp, 0:07 working to build and grow diverse teams of engineers, 0:12 with a passion for creating software with the consumer in mind. 0:16 Over the course of her 20 years in IT, she has worked as an engineer, 0:21 solution architect, graphic designer, and 0:26 a manager at Fortune 500 companies and non-profit organizations. 0:29 She is passionate about increasing diversity and inclusion in tech. 0:34 And was one of the teachers and 0:39 coordinators of the SITES program within the Atlanta chapter of DDPA. 0:41 Which is a non-profit minority tech organization that's dedicated to 0:46 training aspiring and seasoned IT professionals. 0:51 And furthering the upward mobility of minorities in the IT industry. 0:54 Please give her a big, warm Treehouse welcome. 0:58 >> Hi, everyone. 1:03 My name is Sharnecia Williams, like Ryan said. 1:05 And I'm here to talk to you today about the key skills that 1:08 everyone should be learning. 1:13 And these are the skills that I have found invaluable in 1:16 my career over the last 20 years in IT. 1:21 And I've broken this presentation down into two separate sections. 1:27 The first section that I'm gonna go over is the soft skills. 1:33 And these are skills that everyone should be learning. 1:36 No matter if you're going into engineering or IT or 1:40 if you're choosing another path, these skills are invaluable. 1:44 The second section and category that I'm gonna talk about is the technical skills. 1:49 These are the skills that are more geared towards people who are going into 1:56 the engineering profession. 2:00 So with that said, we're gonna start off with the soft skills. 2:02 The first soft skills that I'm gonna talk about today is communication. 2:09 And communication is a very valuable skill to be learning during this time. 2:13 And it doesn't matter if you're just starting off on your path or 2:21 if you've been in your career for multiple years. 2:26 We all should be developing our communication skills. 2:31 And when I say communication, I don't only mean verbal communication, 2:35 I also mean written communication. 2:39 They go hand in hand. 2:42 And so when you're learning about communication, you want to make sure 2:44 you're able to communicate your ideas effectively to others around you. 2:49 And on the other side of communication, 2:54 besides just being able to get your ideas across, it's about active listening. 2:57 So you'll want to make sure that you're also learning how to 3:02 be an active listener, listening to understand around you. 3:07 So that you will be able to ask more relevant questions and 3:11 get ideas and thought processes to be successful. 3:16 So again, communication is a very important skill that 3:20 everyone should be learning. 3:25 The next thing I'm gonna talk about is teamwork. 3:27 And I know you may be going through your tech degree or 3:32 you may be in college, or you may just be starting out in doing boot camps. 3:36 But while you're doing this, you usually work solo. 3:42 You're working on your project, and it's just you and your code and 3:46 you're really not having to interact a lot with other people. 3:50 And that's great for your learning phase. 3:54 But when you get into an internship, an apprenticeship, or 3:57 start your first job, you're gonna be working with a team. 4:01 And that team is gonna work together and they're going to collaborate in order to 4:05 build the product that you're gonna deliver to your customer. 4:10 So when you are in a company, it's not a solo sport like sprinting or 4:14 long distance running, or of a team sport like you're playing football. 4:20 So with teamwork, learn how to work within a group, learn how to collaborate. 4:26 And also learn how to contribute your ideas and your thought processes. 4:32 It will enhance the team which means you're gonna create a better product. 4:37 The next skill I'm gonna talk about is patience. 4:42 So as I mentioned with the previous skill set, which is teamwork, 4:46 you're gonna be working with a lot of different people. 4:51 Not only are you gonna work with fellow engineers, you're gonna work with 4:55 product managers, engineering managers, designers, marketers. 5:00 It is an array of people that you're gonna have to work with in order to 5:04 deliver the solution and the product to your end user. 5:09 And so, with that you may be put on the spot where you have to be able to explain 5:13 your thought process, walk through some code, or whatever it may be. 5:18 And you have to have the skill of patience to sit with someone else 5:22 that may not understand engineering terms. 5:27 And you're gonna have to sit there and talk to them and 5:31 get them on the same page as you. 5:34 So having patience and 5:37 developing that skill helps you to be less frustrated in your journey. 5:38 And another thing is making sure that you develop patience for yourself. 5:42 Engineering is always changing. 5:50 The field is moving and new concepts and new languages are coming out constantly. 5:53 And don't get frustrated with yourself. 6:00 Have some patience with yourself when you're approaching new concepts or 6:03 approaching learning a new language and 6:07 you're not picking it up as quickly as you think you should. 6:10 Have patience, grace, and mercy with yourself, okay? 6:14 The next skill I'm gonna talk about is time management. 6:19 Okay, so while you're in your learning phase you may be working. 6:25 While you're in college, you're working, 6:28 you have friends, you have lots of responsibilities. 6:31 And it seems like there may be not enough time to get everything done in a day. 6:35 And that's where this skill kicks in. 6:40 Time management helps you to manage your time effectively and 6:43 allows you to focus on the most important tasks and 6:47 get those things done efficiently and effectively. 6:51 And so, there are many tips and tricks and tools out there that help you 6:55 to develop your time management skills, like organizing your day. 7:00 Well, you start off at the beginning of your day and 7:05 you organize what needs to happen. 7:08 And you're prioritizing your work, so 7:10 that you're getting the most important things done first. 7:12 And that leads into making sure that you manage your calendar. 7:16 I know it sounds mundane, but it's very important for you to manage your calendar. 7:20 Because if you don't manage your calendar, your calendar is going to manage you. 7:25 You'll end up getting to the end of the day and 7:29 you've got none of the tasks done that you really wanted to have done for that day. 7:32 Because you didn't prioritize your day, 7:36 you didn't organize your day, and you did not manage your calendar. 7:39 So make sure that you master the skill of time management. 7:44 The next skill I'm talking about is problem solving. 7:49 This skill, it works in your career, it works in your personal life. 7:55 It's something that everyone has to do, and you can't get away from it. 8:01 And the way that you solve problems effectively is taking a step back and 8:06 be objective when you're looking at the problem. 8:11 And also figuring out what are you trying to solve for 8:15 and what caused the problem in the first place? 8:20 If you know what caused the problem, you can come up with the solution. 8:24 So being able to approach a problem objectively, 8:28 start to dig deeper into it. 8:33 You're gonna have to use some critical thinking skills along the way. 8:36 So developing those muscles and 8:40 that skill set of solving problems definitely helps you in your career. 8:43 Now, that sort of rounds out the soft skills section of my presentation. 8:49 The next section we're gonna go into is the technical skills. 8:54 And again, like I said at the beginning of the presentation, 8:59 this section is more geared towards people who are going into being an engineer. 9:03 And the first skill that I want to talk about is working in large code bases. 9:10 So if you're at the very, very beginning and you're taking boot camps or 9:17 you're in the tech degree program at Treehouse. 9:21 Or you're in full four year college, 9:24 you're used to working in smaller code bases. 9:27 Code bases that either your instructor created for you or 9:31 it's code that you've actually created from scratch. 9:35 And that is wonderful in the learning phase. 9:39 But when you move on to your apprenticeship or into an internship, 9:42 or get hired at your first job, you're gonna get kinda overwhelmed. 9:47 Cuz you're gonna be working with code bases that are thousands of lines of code, 9:52 and you have no frame of reference. 9:57 So. Learning to get used to working in 9:59 large code bases will help you not feel so 10:02 overwhelmed when you go into being an apprentice or intern, and 10:05 there's places that you can get large code bases, like going to GitHub. 10:10 You can go look at somebody's open source code and pull it down and start to work 10:15 through that code, so you can get familiar with working with larger code base. 10:20 The next skill I'm gonna talk about is understanding code, 10:26 reading and understanding code that you did not create. 10:31 And so that's where that code base that you got, the open source code base 10:36 I just talked about in the previous skill comes into handy. 10:40 So you can pull that code base down, you can start to read it and try to understand 10:44 what the engineers were trying to accomplish with this particular code. 10:50 Now, there's different ways that you can learn how to read and understand code. 10:55 One of the ways I used to love to do is to slow code, 11:00 where I'm writing the code down in plain English for me. 11:03 Another way is to bring that code into your favorite IDE and walk through 11:07 it in debug mode and with some test data and see what the code is doing. 11:13 Get familiar with reading and 11:18 understanding code that you did not create. 11:20 The next skill set I'm going to talk about is code repositories. 11:25 So all this code lives somewhere. 11:30 And so, a very popular code repository is GitHub. 11:33 And so, regardless of where you are writing code, 11:39 if you're writing it in the Tech Degree, or at college, 11:43 usually you're using some type of code repository to push your code in so 11:47 that your instructors or your mentors can look at your code and give you feedback. 11:53 And so, whatever code repository that you are working with, 11:59 make sure you understand the ins and outs of that code repository, 12:04 whatever commands that are needed to bring code down, 12:09 push code up, work out some merge conflicts. 12:13 Understand what all those commands are and be effective at using them. 12:16 So again, GitHub is a popular code repository, but 12:23 there are several others out there. 12:27 But I would start with GitHub, 12:29 there's a lot of good tutorials out there about GitHub. 12:31 The next skill I'm going to talk about is testing. 12:35 I know, you are an engineer and you write code, but 12:40 a part of writing code is testing that code, and 12:44 making sure that you are delivering a solid product to your end user. 12:48 Now, in the corporate world, we do have people who are dedicated to testing code, 12:55 and they're QA, quality assurance employees. 13:02 But before you hand your code over to the tester, 13:06 you should be making sure that your code is valid. 13:11 Go through the unit tests, make sure that you 13:17 are delivering code that is worthy to be passed on. 13:21 So, also sometimes in companies, there isn't a QA person there and 13:26 the buck stops with you. 13:30 And if it gets past you, that means that that defect goes into production and 13:32 into your product that you deliver to your end user, and that's not what you want. 13:36 So you want to make sure that you are testing your code to the best of your 13:41 abilities. 13:45 And there are plenty of courses out there that would teach you how to 13:46 unit test your code effectively. 13:51 The next skill I'm gonna talk about is documentation. 13:54 This is actually our all-time favorite of mine. 13:59 I love to document. 14:03 And not all engineers like to document. 14:05 Some may groan about documenting. 14:08 But believe me, if you start in your career early learning to 14:10 love documentation and this skill of documenting your code, 14:15 then it will save you a lot of frustration in the future. 14:20 Because when you create documentation about what you are doing, 14:25 what your code is doing, and you post it on a wiki or in Confluence, that means 14:29 that that information is there and it's shareable across the organization. 14:34 That means that other engineers can look at it. 14:39 And if you happen to move off that product and go work somewhere else, 14:42 that means that the new engineer that is coming in to support or to enhance 14:47 that code base that you created, they know what that code is about and 14:52 how it is supposed to function, which makes it better for everyone around. 14:56 And outside of documenting, like in a separate document like Flores or 15:02 a Google doc or wherever, you should also be documenting your functions and 15:06 your code within the code base by adding comments. 15:11 Believe me, it will save you a host of frustration in the future, 15:15 because you can walk away from code and you may not visit that code for 15:19 months on end and you have to go back and enhance it. 15:23 And now you have to start all over and you have to reverse engineer because you 15:26 did not document while you were going along the first time around. 15:31 So just make sure that you document, document, document. 15:35 Believe me, it's gonna save you a ton of time in the future. 15:39 And that wraps up the technical skill set section of the presentation. 15:44 But before we move, go, one more thing, and 15:50 this is not dedicated to soft skills or technical skills. 15:54 This is about you. 16:00 Confidence, develop confidence. 16:03 And as you go along and you go into your apprenticeship or your internship and 16:08 you're working around a host of engineers that have been in the industry for 16:13 1, 2, 5, 20 years and they have that much experience. 16:19 You can feel intimidated and you can feel like you are an imposter. 16:24 And so you start to deal with imposter syndrome. 16:29 But you have to realize those engineers that are working at that 16:32 company all started the same place that you did, as a beginner. 16:37 And so you have to have confidence in what you have learned in your Tech Degree or 16:41 in your college degree or in your boot camp, have confidence in what 16:47 you have learned and that you can contribute to the team at hand. 16:53 And so, I just want to implore you that having confidence is very, very important. 16:58 So to wrap it all up, I'm gonna do a review real quick. 17:06 So on the soft skills side, I have five skills that I found invaluable. 17:09 That was communication, teamwork, patience, 17:16 time management, and problem solving. 17:20 And on the tech skill side, it was working in a large code base, 17:24 understanding code and working with code repositories, 17:30 testing, and documentation. 17:35 So these are the ten skills that I have found 17:39 invaluable in my career in the IT profession. 17:43 Now, I would love to connect with you. 17:48 So here's my connection information. 17:51 You can find me on LinkedIn. 17:53 And thank you for attending my presentation. 17:55 There is a few more minutes that I have open for questions. 18:00 So let me move right on over to look at what questions we have. 18:04 Ooh, okay, so here's a question. 18:13 Sometimes I get busy and when I return to my coding practice, 18:17 I feel overwhelmed at what I've forgotten. 18:21 What advice do you have when I'm in this situation? 18:24 So I completely understand where you're coming from. 18:30 And I will say in my career, what I've done is I've created documentation for 18:34 myself. 18:39 It's not necessarily for other engineers. 18:39 It is strictly for myself what I write down, tips, tricks, 18:43 tools, concepts, and it's my little cheat sheet that I'm able 18:47 to refer back to in order to jog my memory about things. 18:52 So if you find yourself where you're really busy and 18:56 you need to create some kind of document that you can refer back to, 19:00 where you could put a placeholder. 19:05 And so you can go back and say, yeah, 19:08 I remember what I was doing because you document it. 19:11 So please create yourself a tips, tricks, 19:14 some type of book for yourself, a playbook. 19:18 I create mine in Google Doc, but 19:21 you could use whatever you need to use in order to help yourself jog your memory. 19:24 Okay, I got time for one more question. 19:29 So let me see, do coders use cheat sheets for coding or 19:32 do coders need to memorize many codes? 19:36 We use cheat sheets, we Google a lot. 19:40 So please do not feel like you need to memorize code, you do not. 19:44 As you get more proficient, 19:50 you will memorize things because you use it constantly. 19:52 But overall, you're not gonna be able to remember everything. 19:55 So that goes back to my cheat sheet, my playbook that I had, 19:59 my tips, tricks and tools that I use as an engineer. 20:04 I had a whole playlist within YouTube on GitHub commands. 20:08 I didn't memorize all of that. 20:13 I had to go back and make reference points. 20:15 So please do not feel like you need to memorize all of the code. 20:18 You will learn as you go along and that is time. 20:22 So thank you all for attending my presentation, 20:27 and so, have a wonderful day. 20:32 Thank you, bye. 20:35
You need to sign up for Treehouse in order to download course files.Sign up