egghead.io developer chats

Jacky Alciné on How The Software Field is 75% Code and 25% Presentation

Episode Summary

Jacky and Joel Chat about first languages, motivation, good questions, and mentorship.

Episode Notes

Perhaps the most important skill that a software developer can have is the ability to ask good questions. Questions will lead to the answers that you actually need. Formulating good questions is key. Often, you'll find that you answered your own question in the process of forming it.

Mentorships are a great learning and growth opportunity but it's important that you respect the person that you desire mentorship from. Don't just take up their time by asking questions regularly without being upfront about the relationship that you are wanting. It's also important that when you do ask your mentor questions that you continue to respect their time by making sure that your question is good and well researched.

Included in the links below are a couple of articles on how you can take your questions game to the next level. Try to read them before asking your next question!


Resources

Jacky Alciné

Joel Hooks

Episode Transcription

Joel Hooks:
Hey, Jacky.

Jacky Alcine:
Hey, Joel.

Joel Hooks:
I wanted to sit down and talk to you because I know you have an interest in helping people get started in web development, and how education works when we're trying to get into this field. Can we start out by maybe introducing yourself and telling us what you do and how you're involved with software?

Jacky Alcine:
Yeah. So, I'm Jacky, software engineer at Glitch and consultant on the side. Software engineering for me actually initially started as a hobby. It was probably the only thing my parents allowed me to do. But they didn't call it engineering then, they just called it being on a computer to 2:00 AM. And it evolved from there. It more or less kind of saved me, but that's probably a different story that we can get into later. Yeah.

Joel Hooks:
A question that I see a lot that people are curious about is, they're starting out. They don't have a lot of experience. Maybe they've brushed against HTML and CSS for some sort of project or to customize a website or do something like that. But when somebody asks you, "How do I get into web development?" Or, "How do I become a software engineer?" What do you tell them? What's your advice to give? Where do people start?

Jacky Alcine:
I kind of tell them the same thing my dad actually told my brother one time. You don't kind of work to just be trained to do a task, you work to do something worthwhile. And that's a bit of a loaded statement to be honest. But what I internalize that as like, you don't just become a software developer. You do things on the web to build something else. If you happen to be somebody from an artistic background, you're trying to build experiences.

Jacky Alcine:
If you're someone like me who's trying to just like optimize every little nook and cranny you can find, then you're a tinkerer, a tweaker. Web development, they're all nothing but tools. You can do anything with a hammer, it doesn't mean you should make pancakes with a hammer. From there, it helps them decide, "Okay, cool. What is it that I'm actually trying to do? Am I just trying to make money? Am I trying to understand how to mini clip Survivor's website on the web?" What is it that's fueling you? And from there, it will give you even more motivation to keep going, because to be honest, those dark days when you can't figure anything out, that'll be the fire to keep you moving forward.

Joel Hooks:
So, you mentioned, because one of the things, "I want to get into this because I want to get a job that that pays well to get me out of my current work situation or just get that brass ring myself." And I think that's a perfectly valid reason to get into this. So, is there a difference between working and learning how to code from that perspective than say, "I want to build myself a tool or scrape a website or do some sort of automation that might help me?" Is there, is there a difference between those two approaches?

Jacky Alcine:
Not necessarily. I guess with that, then you kind of go down, I want to say, a quote, unquote, cookie cutter kind of list. What are the things that developers should know how to do? And it's very difficult in my opinion to make it a general broad stroke. If you're going for the Fang set up, there's things you, quote unquote, should know how do. Maybe know how to use a database, running SQL if you're looking for more backend stuff. If you're on front end, maybe understand how to use Chrome development tools. But even going back a little bit more, understanding what JavaScript is, how you can use it to use things in a browser end of the back end. Little things, or rather I really try to not say little and big when it comes to those things, because what may be little to me, could be super huge to someone else.

Joel Hooks:
It's all relative.

Jacky Alcine:
Yeah. But things of that scope and scale, once you kind of have those bearings down, it becomes a lot easier to open other doors. And again, this is why I put air quotes around the word cookie cutter because some of those things are not necessarily things we need at every company. There's skills that I had now that are completely irrelevant to my job today. And that's only because it was relevant then, like Android development. I don't do that at all anymore. I do it for fun. But when I first started out moving in the Bay, that was like my bread and butter. I guess probably one of the most important things, and the most meta thing out of it, is just being able to ask useful questions. Questions that will lead to the answers that you actually need.

Jacky Alcine:
Not necessarily the question of the answer that will solve your problem, but the one that will guide you to the answer that kind of unblocks you. Those sound like the same thing, but solving a problem that's in front of you is not necessarily to bring it to the result that you need. Because you could be going out of the wrong path and end up like, "Oh, this is not what I need at all." You waste three days neck deep in Stack Overflow in some other forum, and now you're discouraged from moving forward. You can't prepare yourself properly for that interview that's coming up or finish this ticket that you had that was coming up.

Joel Hooks:
It's kind of like working on the wrong solution when you need to understand the problem.

Jacky Alcine:
Right. Yeah. So I guess that's called problem solving to be honest or critical thing. I forget the term that people use for these things.

Joel Hooks:
I mean, is there a way to build that sort of critical thinking, problem solving skill? Is that a prerequisite for getting into this or is that something that you think people can develop as they progress towards being a software engineer?

Jacky Alcine:
Oh, I definitely believe that people can develop this over time, because I've had to. I always kind of use myself as an example. Truthfully, if I can figure it out, it's going to be doable for a lot of people. This is not to be self-demeaning or what not, but I don't think I'm the sharpest tool in the shed, but I am the most clever. I will find a solution that works, not because it's the greatest, but because it gets the job done and then we can work backwards and make it better. I'm not one of those like, "Oh." Like a Tony Stark kind of character. Oh, the perfect solution comes out of my head.

Joel Hooks:
I always wondered if that's an innate stubbornness too, right? It's like, "Oh, that's really clever." "Well actually I'm just really stubborn and I will not let this computer defeat me."

Jacky Alcine:
Yeah. If you need it to, "I have to get this done by a certain time." It's like, I don't have time to sit down and think a theory between object oriented programming and functional programming. Like, "Oh, should I use a 4Each or a map?" None of that matters. Does it get the job done? Does it pass my test? Cool. When I need to optimize, I'll optimize. But right now I've got the door. And I think just coming to understand that part can help push forward. And that's definitely a skill that people can learn over time. And that's the progression as a developer from an IC up to a team. They understand, "Okay, the closest ticket, this is what I need to do." From a team leader, I understand that there's a certain task that's to be done and the impact that this task and when it's completed can affect other things in the future. How does that change? This is definitely something that people can learn though.

Joel Hooks:
Yeah. I feel like it grows over time too. It starts out and you have all the documentation open and every line of code you're having to look something up. And then over time you can stop thinking about the vocabulary level of it and start thinking about, how does this all fit together? But it's so frustrating. It's so slow when you first start.

Jacky Alcine:
Oh yeah. And I think that's something that should be expected. Despite the speed of your computer, the programming part might be the slowest part of it all. And that's completely okay. That's always what I had to remind myself. I compare it to cooking. Probably the most tedious time for me, usually when it's making food, is just the prepping. Dicing the onions, the garlic, the peppers, the jalapenos, all of that. That's going to take forever. And that's okay because the minute you put in the pot and you stir it all together, you can walk away. The tests are running, the food's cooking, you know you did what you needed to do.

Joel Hooks:
I like that comparison because when you're starting to cook, you got to read that recipe and you have to read it ahead and understand every step of the way before you even start. So there's a lot of this research and researching the question and the problem you're trying to solve. And then you get to the solution by combining all these parts and pieces together. And you get a meal at the end of the day.

Jacky Alcine:
Ideally.

Joel Hooks:
Yeah, hopefully.

Jacky Alcine:
Yeah, right. You just got an Unintelligible disaster. "What is this? This is not the spec." But ideally in those cases that you get a recipe, you can also scale and switch the scope of it accordingly, because certain things may change. You only have a four quart pressure cooker versus the recipe quality for a 20 quart. I don't think they make 20 quarts. They probably do. Yeah. So you have to learn how to maybe take things out or understand how deeply these things may impact your full scope. And again, that's something you definitely learn from time.

Joel Hooks:
Yeah. Like scale on the differences, right? A recipe for one person isn't necessarily going to work for a recipe for a hundred people just because you multiply everything.

Jacky Alcine:
Hey. Don't tell Jesus that with the fish. Definitely made it work.

Joel Hooks:
True. So what are some good reasons to get into software engineering? If you're trying to pitch somebody and say, "Hey, this is something I think you'd be good at. This is something that I think you might like to try." What do you tell them are good reasons to get into this field?

Jacky Alcine:
I'm going to use a same thing I mentioned, actually, when I was interviewing at Glitch, and Glitch being a platform where you could just code something to share with the world. But coding nowadays is, I want to say, the no waste, eco-friendly form, or eco-friendly to a degree, wave like painting in a digital format. You can put anything you want in the world. You could share with people immediately. And they can also understand a process. They can see what you've done to it. They can learn how you grow. And that's always how I personally kind of see the web, as a creative platform like an art piece. And, this might be super meta now, but that liberation that you can take an idea in your head and just put it on the internet, kind of like how they did the Harry Potter ways with the wand and extracted the idea, I forgot what that was called.

Jacky Alcine:
But then he put it into a jar and everybody could see what they were thinking. The web allows people to do that with their things. That comes with pros and cons, but I think so far the pros outweigh the cons to the degree where we can understand how to make it better and keep moving forward. That's the high meta aspect of it. I want to say a little lower, it definitely forces you to kind of reevaluate how you look at things in life. I know for a fact now, the only reason why I write down so much and itemize everything in my life, is because of like JIRA and things like that.

Joel Hooks:
It's trained your brain.

Jacky Alcine:
Seriously, man. But it's so useful, because now I just throw it away. When the list is done, I just discard it. If I need to help somebody else, I'm like, "Okay, what can you do? What's your range? Okay. Boom, boom, boom. You can do this." And we don't have to interact with each other. Not to say interacting with people is a bad thing, but parallelization a test I think is a better use of time altogether.

Joel Hooks:
And then you can kind of come together at the end too. We're all working on our own thing, but we all have to come together and kind of get our work done and come back together. And it's kind of a rhythm to it.

Jacky Alcine:
Right. Just plops down the coach when the task is all done. Yeah.

Joel Hooks:
Do you think, are there bad reasons, some reason you might talk somebody out of getting into software development?

Jacky Alcine:
Oh, that's kind of challenging. And I guess the one tricky thing is, and I'm really trying to avoid saying, "Oh, if you don't have the guts or stamina," because that's not it at all. I still don't think I have it sometimes. I know often, whenever I get frustrated, I will just lock my screen, walk out the house for a little bit. I'm just like, "That's going to fix itself." Usually I come back with the answer just because that's how computers work apparently. But a bad reason, I would say nothing is meant to fit for everybody. Nothing is universal. If it weren't. Yeah, that should be a bit of a tough one. I guess the most immediate thing, like lack of universality. I don't know. I guess a bad reason to be doing it is if the web is not your thing. If you're, I want to say, borderline Luddite, I think that's the term where you just avoid the technology.

Joel Hooks:
Yeah. And I mean, that gets to maybe another question. If you are just starting out, and you're thinking about this or somebody is trying to get into this, how do you even know when this is something that you might enjoy? Is there a click or was there a point in time where you, "Oh yeah, I like this. This is something that I want to keep doing," or is it just a dog determination to quicken it?

Jacky Alcine:
Yeah, I guess so immediately, as you were saying, I always imagined somebody trying to mold something out of clay and then looking at the final result and being satisfied. And that satisfying just kind of washing over you. Not to say every time I write a perfect test, I'm like, "Oh thank God." But to have things pushed out to the world, and also to see the satisfaction from people, not necessarily users, but the people who use directly. If that is something you can get a dopamine hit off, then web development and software development will definitely be your jam.

Jacky Alcine:
If you're also not the kind of person who likes to do things yourself or just to kind of, let's say, "Oh, you have to put up a shelf." You don't want to hire somebody, because you have a drill and the hammer. I can see web development, software development being up the alley as well. But as with everything, if you really want to test if you enjoy it, you have to kind of give it a bit of time. I really should take my own advice here. I keep trying to learn how to ride a bike, and the minute I fall off I just walk away.

Joel Hooks:
It hurts though.

Jacky Alcine:
Man.

Joel Hooks:
It hurts. And it's frustrating. And I think that's a pretty good comparison. Because you're doing this and you'll run into some bug and it's just not comprehensible. You just don't have the solution. The solution is there and you know it. And you know people ride bikes, but the concrete hurts, right? We can witness this. This is something that people can do. And I know that person doesn't seem any more agile than me, but they're riding a bike. And how do you do it yourself?

Jacky Alcine:
What am I doing? What did I not eat today? What am I doing wrong?

Joel Hooks:
Oh, so you work at Glitch and Glitch is a really interesting company because I feel like in a lot of ways, it's trying to bring some of the fun-ness and the play experience and take some of that frustrating headache that sitting down to a blank computer might provide. And I was wondering, what do you think about fun and play and how is that important to progressing or starting or getting into this field?

Jacky Alcine:
Yeah. So, that's a trickier... Oh, I mean, it's not tricky. It's just, I guess, it's always kind of meta. Fun, I guess the closest thing that can, I want to say, elicit fun from a person when it comes to web development, is just kind of seeing things come to life. And I guess it's always a level of nostalgia. That's actually probably the most easiest way to get it. There's this one site I remember looking at, and it was a responsive site, such that as you changed the viewport, I think width-wise, the person's clothes will get bigger and smaller. But the person was modeled after somebody from Bob's Burgers. So, if you've seen the show, you're like, "Oh my God. This is great." And you can just see the clothes getting bigger and smaller.

Jacky Alcine:
That's the kind of things you can do with the web. It doesn't serve any purpose, but slight nostalgia into, "Oh, the good viewports. This is how it works with CSS." That kind of stuff that pulls you in. And it was totally as a game kind of thing. There was one time, I think a few friends and I, we wanted to make our own replica of aim, just because nostalgia, and I mean we never got around to it because getting developers to do something about PMs is almost impossible. That kind of stuff, we were like, "Oh, what kind of tools are we going to use?" All of that. The act of just even planning, preparing for it, was exciting just because we wanted to bring back something that we're very familiar with.

Joel Hooks:
Just even talking about the potential of it and the features and what you might be able to build and what you have the skills to build and you could do is a lot of the enjoyment.

Jacky Alcine:
Yeah. It's like you're back in a Lego box. You can do anything you want as long as you get the right tools, so that every Lego piece can go together. It doesn't matter if it shouldn't, it will.

Joel Hooks:
Can that open-ended potential be frustrating in and of itself. If you can build anything, does that make it hard to just build something?

Jacky Alcine:
Yeah. And that's... What is it? Decision paralysis that some people occur. And I can see that effecting a lot of new developers. Because people see, "Oh, I need to learn Angular, React, TypeScript, Ember." All these things they throw at you once. You're like, "Why?" It's not even what, but why do I need to learn all these things? And that's probably the trickiest part for most people.

Joel Hooks:
So, when you're just starting out, what do you choose then? What do you recommend, right now in space and time, what do you recommend people do to get past that? And just start learning something. Do you send them to a particular resource or do you have a language that's a favorite starter for you?

Jacky Alcine:
So, I can't even suggest stuff. My starting language is C++ and like I learned this-

Joel Hooks:
Oh nice. That was one that almost kicked me out to be honest. I started C++, and I was like, "Oh, this might not be for me."

Jacky Alcine:
No, it was rough. I'm also going to get the story. When I was younger, I think it was in the sixth grade or seventh grade, my dad was a math teacher and he had a computer science thing on the side. So he had this big book, [inaudible 00:15:41] fourth edition C++. I still have it here just as a reminder.

Joel Hooks:
The blue one?

Jacky Alcine:
Yeah. So the two ants on it.

Joel Hooks:
That's the one that almost chased me off.

Jacky Alcine:
Oh man. But it was such a good guide for me, because the way it introduced concepts and what not, it brought me all the way in. And from there, I only got to web development because of the CGI chapter. CGI. And that kind of pushed things forward from there, that introduced me to PHP. If I had to actually pick a language today to have a new web developer use in terms of web development and backend kind of things, I would say PHP. That's going to get me shut down in so many places.

Jacky Alcine:
But PHP today has gotten so much better as a tool, and the thing is you can just put it on a server and it runs. You don't have to worry about random gems or eggs or, this is not shots to those language. But it just runs in a machine. I've been using it more for client projects, and I've been like, "Wow, I forgot PHP was this great." I mean, I'm thinking from the PHP 4 and 5 days, which was a bit of a nightmare. Like [inaudible 00:16:39] special entities. But now it's just gotten a lot better. And that's because people have learned, "Oh, this is how we can improve things." They saw what other languages have been doing. And that's kind things that pushed forward. So definitely JavaScript-

Joel Hooks:
That's a lot of languages that get... I feel like PHP is a scapegoat. C++ to some extent for it's difficulty and Java, that gets kind of ragged on a little bit. But these are all languages that there's smart people improving on all the time and they're amazing resources. Yeah.

Jacky Alcine:
No, it's funny you mentioned that. Because like C++ 20, and this is getting super specific now. I followed the STL mailing list, because this is the kind of stuff I do in my spare time, and they're making things that we expect, like variadic arguments are a thing. Variadic arguments are a way to kind of specify a named argument in the function. So, that wasn't a thing with C++ anymore. You had to define a struck and pass everything in and now that's just a first class citizen. You're like, "Whoa, this is great." It's like, they're trying to bring things up to what people are more comfortable with working with now.

Jacky Alcine:
The data in C++, because just in time compilation as a default things, and compile it. Now you're competing with things with JavaScript and maybe Rust. And that would change how the world works. Or maybe it won't, we'll see. JavaScript's kind of all at capacity nowadays. But to answer your question, definitely PHP and JavaScript. Two languages I would recommend off the bat that people should work with and learn. And also because those languages have so much community support. There's so much documentation. Somebody is going to know the answer to the question you're asking, because 10 other people already asked the question.

Joel Hooks:
Yeah. I think that's like swimming with the mainstream, in terms of like learning and getting... Instead of picking something that's kind of more difficult or maybe more esoteric or specific, you pick something that's broadly used simply for the resources. Do you think once you learn a programming language, it's easier to jump into another programming language?

Jacky Alcine:
I want to say at least three, like three that enforce very different styles of programming. If you do, let's say PHP, Ruby, and I want to maybe also say JavaScript as well, then you have like a bit of small talk in you. You have an idea of what prototypical inheritance is like. There's concepts that you will see that you can pick up in other languages, like Python or to Elixir, or even to like, I want to say... What's the other language? Not Rust. It's Crystal. There's concepts that you can bring to other languages. But I would say wait a few years before you even do that, because you will easily start typing semi-colons in Python. And I'm like, "Why is this code not working?"

Joel Hooks:
Yeah. Like the context shift from syntax to syntax. Which understanding language in syntax is a challenge in and of itself. And at some point you have to go from you're looking at this and you're using the book all the time to starting at a blank page. And I'm wondering, have you seen that? Where is the kind of the tipping point where you go from learning syntax to, "I can create things and I can actually build something from scratch"?

Jacky Alcine:
I think that comes with time. I guess for me, because I slightly kind of measure these things, off the top of my head I think it takes me about three months to get syntax down. Because also, I guess with like day job work, I'm always using one language or one set of languages. So, if I'm doing something on the side... So Glitch, you're mostly JavaScript there. But I'm not on my side projects or other things, I'm using Elixir, PHP, Perl, for God knows why. And those have a whole different world of constraints and requirements. So I've caught myself many a times just putting semi-colons in the wrong spots in JavaScript code and I'm like, "Ah, this is not how this works. This is not Perl." And I would say it takes time.

Jacky Alcine:
It's definitely dependent per person, but I guess a meta point from there is also kind of to measure your own growth. Record things. Keep it a code journal of sorts. "Today, this is something I've learned. This is how I've thought it might be useful." Maybe you don't need to write that. You could just say, "I learned this today because I got it from this link." And kind of documenting that process will, one, save your time in the future because you will forget it, and you will want to look it up somehow. I can't count the number of times I've actually brought written blog posts to for a set of command, and every time I would search it, my result will come up first. I'm like, "Thank God. Thank you past Jacky."

Joel Hooks:
Yeah. It's amazing.

Jacky Alcine:
It's little things.

Joel Hooks:
Doing favors for your future self, which is interesting to me actually. Taking notes and blogging and sharing what you learned with others feels like it might be an important part of the process. And what's your experience been like kind of joining the broader community and sharing what you know?

Jacky Alcine:
Yeah. Nowadays, I kind of regret that I don't do it as often as I can. I'm actually kind of trying to work and to compile some notes on that, but it's been the easiest way to one, not only prove that you're capable of writing things, but two, that you have some kind of, I wouldn't say expertise, but some kind of know how as to what you're doing. You had a problem, you were trying to figure out a solution, and this is the conclusion you came upon. Be it right or wrong. And sometimes that's realistically all people need in developer, to say that's the day job. There's a task for me to get done. There's an objective we need to meet. How are we going to do it? That's up to you. Just give me the result and make sure it's correct and test it for other people so we can catch it if it goes wrong. And that's usually the process.

Joel Hooks:
And that circles back to what you're talking about asking good questions too, right? So you've asked a good question, you figured out what the problem is, so now you write up your solution and conclusions and you're demonstrating this ability to do all of those things, which are hugely important in any work or professional environment. We want folks that can get shit done at the end of the day. Because how do you prove that in general? And if you have a catalog of writing, where you've shared that with other people, it certainly feels like proof.

Jacky Alcine:
That's the harder part. And I guess it gets more difficult if you went to work in an environment where most of your solutions are company specific, so you can't really like talk about it out loud, because IP and all that noise. I had a friend and I, actually Terry, Terry Burns, she used to work at Twitter and now she was at Google and we had a bit of contention about this idea of side projects. Are they actually useful for people who are just starting out? I initially thought at first they weren't because the time you could be working on a side project, you could be actually studying for interview or XY and Q. But I realized on my own personal journey, actually if you go on my GitHub, there's this old project opened to me after this character from a book.

Jacky Alcine:
If you note the reference, you're awesome. But that project taught me how to write more idiomatic C++, which then I could carry into JavaScript just because how things were structured and whatnot. That was only because I was lucky enough to have parents that were like, "Maybe he's doing something. I don't know what he's doing, but he's in the room all day. He comes out. He throws out garbage once in a while, that's fine." But that helped me get better in that space. I do think things like that can help people get more questions done, but there's also like another part of this I wish I imagined sooner. It's always kind of okay to not have an answer to the solution and just ask it into the void.

Jacky Alcine:
Because again, with a properly structured question, somebody will be able to get you to a solution that you need. And that's actually kind of something I don't see a lot of nowadays. It's kind of captured through Stack Overflow and sites like that. But on one's personal block, I remember doing that once and somebody was able to email me with like a whole answer. I'm like, "Oh my God, this is great." It was more of a personalized experience, but I couldn't necessarily share immediately. I should update the blog posts with the answer.

Joel Hooks:
I don't know if you've ever seen it, but Stack Overflow has a whole section in there. The Stack Overflow Wiki about asking good questions. And it's actually one of the most amazing resources. Julia Evans has another, she has a blog post as well that I love for in that space because there's this ability to ask a question. And it's this idea of holding up a rubber duck and asking a rubber duck questions, right? So you type it out, you do the research and you really go in to try to ask this good question. And oftentimes at the end of the question research, you were able to answer your own question and don't even have to bother anybody. You can imagine in your head what the response would be at that point. It's a powerful tool. The ability to ask questions and frame questions is amazing. It'll get you a long ways, I think, in this field.

Jacky Alcine:
Self resolution is always the best kind of resolution you want to have.

Joel Hooks:
So I think there's a lot of talk. I see a lot of people that are always out there. They're looking for mentors, right? They're out there, they're trying to hunt somebody down that will mentor them. And I was wondering, what is your view on mentorship and how do you recommend that folks go about finding mentors?

Jacky Alcine:
This has always been hard. I want to say I was kind of lucky and I always kind of putting out to luck because I was the right place at the right time to find somebody who was like a mentor for me. Well, it's not necessarily one person. It was about three of them. And they allowed me to prevent myself from making mistakes that would have either harmed my career or caused setbacks in the future. Or rather, I mean, to be honest, sometimes they would try to prevent it and I'll do it anyway. And then I would learn for myself and they were like, "Okay, cool. So you made the mistake, let's see what we can do from here." Conflict resolution to a degree.

Jacky Alcine:
These mentors have helped me navigate negotiations better, figure out what kind of choices and career paths I should take, even to a level of degree, how should my public appearance be, which is odd enough despite public belief, is actually kind of curated. So things of that. It helped me to kind of save time and building myself as a developer and as a person as well in a social space. Which is something that's kind of under merited. One of my mentors, he did mention that this career, the field is, I want to say three fourths of what you're capable of doing, and a quarter is how you present yourself to people.

Jacky Alcine:
And even though that quarter is smaller, it's probably the most important part. The presentation comes with emotional intelligence, your addiction skills, your ability to just kind of read a room and how to, again, kind of ask questions properly, coherent rather, nor necessarily properly. How to ask questions more coherently. And that 25% will help enhance the 75% that you go with. You can be a great developer. If you're terrible at working at a team, there's no reason why companies should hire you outside of you writing so much code that the can't fire you. And even then, they'll find a way to get rid of you.

Joel Hooks:
Yeah. Well, they'll plan and figure out how to replace you at that point. The ability to interact and be part of the team and come in, that's an important aspect.

Jacky Alcine:
It's super critical. And there's one thing I always try to do when I join a company. It's slightly annoying depending on how you are as a person. But I would hover over a person for about a week, like, "Hey, so what are you working on? How does this work?" It's just because it's going to take me time to figure out what to do on my own if I just paddle in the water by myself. But to see how people who've been there for a year or two, how they have been working on it, it's always easier. And they'll also like working with somebody new who's just hired you, and kind of like touching base once in a while. One, that's the easiest way to build a comrade in a company.

Jacky Alcine:
But two, it's also showing like, "This is something I found out this week. Oh, this is a shortcut to do this XY and Q." It saves a lot of time. Granted, these are the things I realized that should be in public company handbooks. And sometimes they are, but because people have been there so long, it's harder for them to phrase things in such a way that would be appealing to somebody who's new. So it's always helpful if somebody new, "Okay, edit something. Hey, this is actually where you go, because it's four steps here that were implied by other things." Yeah. Yeah. Oh, and one most important than my mentor always told me to do, I have it kind of big file somewhere, is to write down everything you've done that's been good for a company.

Joel Hooks:
Oh yeah. That's a big one and I don't think a lot of people do that. We have to be reminded to keep our timecards.

Jacky Alcine:
Literally.

Joel Hooks:
Writing down what you do and your achievements, it's almost like a gratitude journal, but you can come back later. And when it comes time for review or it comes time for your next job or a time to update your resume, you're going to be able to be like, "I did this, this and this. And these are the outcomes and here's why I'm a bad ass and you should hire me or give me whatever."

Jacky Alcine:
I was so confused. Wouldn't people already know. Most of the time, no. They're busy doing their own job.

Joel Hooks:
Nobody cares about you. They only care about themselves.

Jacky Alcine:
Yeah. I mean, not to say it so bluntly, but it's true. They are concerned about product. And I guess this is part of adulting, you really have to make sure your P's and Q's are in line every single time.

Joel Hooks:
Well, and pre career, when you get your job, you are your own strongest cheerleader. There's a few people on the planet that might care about you, but you have to care about yourself the most. And you're the one that has to let people know what good work you're doing.

Jacky Alcine:
Every single time.

Joel Hooks:
If you're waiting, then you're leaving your life into somebody else's hands. And I never recommend that.

Jacky Alcine:
Yeah. Same here.

Joel Hooks:
If you had a top tip that you could give somebody that was early career, thinking about becoming a web developer, what would you tell them? What would be your top two?

Jacky Alcine:
Let's see. One tip is never enough.

Joel Hooks:
It's not enough. We've done a lot though. We could already have talked about it. That's fine too.

Jacky Alcine:
Yeah. That's fair. That's fair. I guess it's definitely follow people that are, or rather try to, not to say follow physically, but tend to subscribe to the people that model something that you want to be close to. Or at least, not to say don't idolize them, but notice what they do. And if you can, ask them questions in the way that they find most appropriate. Most people tend to have contact pages or they tell you how to reach out to them. Just don't blindly do it, but definitely try to reach it. Try to reach out to them in a way that's appropriate for them, but also not to the degree where you're asking for mentorship. And if you aren't looking for mentorship, be clear about that. Because the last thing you need is to have a constant two year thing going on asking questions-

Joel Hooks:
You recommend just saying that out loud, "Will you be my mentor?" That's never the... I don't think that's the-

Jacky Alcine:
Oh, every single time.

Joel Hooks:
Yeah? Okay.

Jacky Alcine:
Candidly. Even though I think people shouldn't immediately look for that all the time. Just having somebody to pair with on things or just ask questions to, like "Do you mind spending an hour or two a week or something, just helping me out, if that works for you? If not, is there someone that that you know that can help me?"

Joel Hooks:
I just feel like is the mentor a word when you say that. "Hey, can you be my mentor?" Sometimes people are like, "Oh, hold on. Hold on. We're not going steady."

Jacky Alcine:
Commitment. Whoa, what's that.

Joel Hooks:
"I'll answer your question. But I'm not signing a contract."

Jacky Alcine:
Right, right, right. And I've done that with so many people. And I guess there's definitely a big level of fear. Oh, this person invented JavaScript or like do XY and Q. But most of these people are people just like you and-

Joel Hooks:
All of them.

Jacky Alcine:
Yeah. Oh yeah. Exactly. You're so right. All of these people are people just like you and provide it with time and answering and their ability to answer it, they'll answer it. And I take this as a personal advice. There's this one guy, he works at CMU. And back when I was more, I want to say, wet behind my ears. I was trying to learn more about speech recognition and he made the pocket speaks library. Or rather, he was one of the maintainers. I read this paper. I was 15 years old. I didn't what the hell I was doing.

Jacky Alcine:
And I'm like, "Okay, cool. I don't understand any of this." And I asked him, "Okay, what does this mean?" And he's like, "Oh, this is duh, duh, duh, duh." And he's like, "Oh, so what does that mean? And duh, duh, duh, duh." And it allowed me to get a better comprehension to ask questions, to realize that I was actually way out of my field. But had he not answered those questions and gave me guidance, I think I'd still be just flailing around.

Jacky Alcine:
Actually, because of that, I think I have a book here somewhere about speech synthesis and recognition, language theory, hidden market models. I know all of this random information that's not relevant to me at all, because he was willing to give me the time to answer those questions. And that's something I try to do myself. If anybody, my DMs are usually open. If anybody asks me a question, I try to answer it as soon as I can. And if there's like a link I can associate with it to help them go further than, like, "Here's more information if you need it. Follow up if necessary."

Joel Hooks:
Oh, I can't tell you how much I appreciate when somebody puts a link in to add context of what we're talking about. Because what you said is interesting, and your tip is great. I think the idea, one that hero worship isn't the goal here. If you look at everybody on this planet, they're all humans and some are busy and some aren't going to give you the time of day. But if you really pay attention, the people that you admire and want to model your career after, if you pay attention and ask them good questions and respect their time, you're going to be surprised how quickly you go from being an admirer to being a peer.

Joel Hooks:
That's a fact and you stick with it and you model yourself and your behavior and your questions and your career, you can get to where all of a sudden you look over and you're standing shoulder to shoulder instead of looking up. And that's a powerful thing. And it takes time and it takes patience and paying attention and participation on a lot of levels. But it's worth it. It's worth the effort.

Jacky Alcine:
It's super humbling. I can't remember. Who was it? It was the person who made Envoy? I remember you see them in person. I'm like, "Oh my God, I love your stuff." And he's like, "Yeah. Okay." We wouldn't work on the same teams, but I've seen some of his PRs and he saw some of mine. He's like, "Yeah, I know you Jacky." I'm like, "You don't know me. There's no way." Things like that. It's normal. It's okay. Yeah. But just don't kiss their feet.

Joel Hooks:
That's true. Don't do it. Jacky, I really appreciate it. Thanks for taking the time out of your day to chat with me.

Jacky Alcine:
Totally.

Joel Hooks:
I'll talk to you soon.

Jacky Alcine:
Definitely. This is great.