Starting "Impossible" Software Engineering Tasks - tips from a principal engineer

  Рет қаралды 3,778

The Deliberate Engineer

The Deliberate Engineer

Күн бұрын

As software engineers, doing something new is just part of the job. What do you do, though, when you're TRULY stumped and have no idea how to get started?
Here's tips from me, based on my time as a software engineer at Microsoft, and having to solve a couple of really difficult coding tasks that felt absolutely impossible.
TABLE OF CONTENTS
00:00 Introduction
01:19 Sometimes what you have to learn looks impossible.
02:29 First job working on a HUGE codebase
04:27 Informedia - learning MFC
07:01 Reading books doesn't work for me
07:43 Working through samples
08:38 One to throw away
10:18 Reiterating the approaches
12:26 It works with design, writing, and other domains
13:38 Wrap-up

Пікірлер: 30
@machinelearninginterview
@machinelearninginterview Жыл бұрын
"Build one to throw away" is going into my vocabulary. I have a project right now that feels just like your example
@TheDeliberateEngineer
@TheDeliberateEngineer Жыл бұрын
Let's hope it winds up being easy once you get started!
@al-khwarizmi769
@al-khwarizmi769 2 жыл бұрын
This is the first time I hear a more senior engineer speak about this topic and I'm very happy that I am not alone. I agree it's easier for me to experiment with existing code before going ahead with reading books. This is quite similar to how children learn - for example, kids speak a language before they begin to learn it. They don't know nouns, pronouns, or verbs but speak the language anyway.
@TheDeliberateEngineer
@TheDeliberateEngineer 2 жыл бұрын
Good observation! Thank you for commenting!
@neilchen1494
@neilchen1494 Жыл бұрын
This advice is so invaluable to me. When I join a large project with new technology stack, I always have a strong feeling of imposter syndrome. Your tips help me resist the temptation of understanding every little detail before I could actually make some contribution. Thanks for sharing the great insights, John!
@TheDeliberateEngineer
@TheDeliberateEngineer Жыл бұрын
I'm glad it was useful advice! I'm with you on the feelings of imposter syndrome. Just remind yourself it's an illusion!
@11704187
@11704187 2 жыл бұрын
I wholeheartedly agree with the points you've made. It's _really_ helpful to just get something down and iterate on it after. Oftentimes I've found that the code I write in the first draft - many of the snippets I can just copy paste into the second draft, which speeds things up a ton. In these sorts of situations where you're feeling the pressure to deliver, or are feeling overwhelmed by the task ahead of you, I find it's very easy to get stuck doing the same thing. You start reading your big books thinking "Oh yeah, this'll be great!" and you get half way through and you think "The first half wasn't great but maybe the second half will be. It'd be a waste to give up now!" By the time you reach the end you realize that the entire book didn't teach you what you wanted to know, but you kept on pushing ahead down the same path anyways. I've always found that learning has an ROI, and as you're learning, you can ask yourself "What's my ROI for this learning material?" It took me a while to learn this, but just because you think something is "good" or " well regarded" (e.g., a highly rated programming book) doesn't mean it will help you learn what you're wanting to learn in that moment. If you're reading a section in a book that teaches you about X but you want to learn about Y, skip it and go to the next section! If you find that you actually do need to know X in order to learn about Y, you can always go back :)
@TheDeliberateEngineer
@TheDeliberateEngineer 2 жыл бұрын
All excellent observations! Amazon calls "just getting down to it" a "bias for action." While I was there, I saw a way of aggressively starting to code that I had never imagined would work, but it works very well for them in a services world! Thanks for watching and commenting!
@hugocode
@hugocode Жыл бұрын
underrated channel, thank you
@TheDeliberateEngineer
@TheDeliberateEngineer Жыл бұрын
Thank you, and thanks for watching!
@randEveScrub
@randEveScrub Жыл бұрын
Absolute GOLD this channel is, thank you so much
@TheDeliberateEngineer
@TheDeliberateEngineer Жыл бұрын
Thank you for watching and for the kind words!
@vinylwarmth
@vinylwarmth Жыл бұрын
These videos and the insights you share are just gold, thank you 😊
@TheDeliberateEngineer
@TheDeliberateEngineer Жыл бұрын
Glad you like them! Thanks for watching!
@nachosncheez2492
@nachosncheez2492 2 жыл бұрын
More sr's need to talk about problems they face, for new people to know how to tackle them so we are more prepared.
@TheDeliberateEngineer
@TheDeliberateEngineer 2 жыл бұрын
My toolkit isn't the great things I know, it's the collection of mistakes I made along the way that I try not to make again :) Thanks for watching!
@kdietz65
@kdietz65 2 жыл бұрын
I'm interested in joining or starting a peak performance group for software developers to be the best versions of themselves, and I don't necessarily mean technical skills, I mean more focused soft skills; a group that helps you productively steer conversations within your job; something like going through the book "Crucial Conversations" with a specific emphasis on applying the principles to software development. The group would practice difficult conversations and brainstorm on the best ways to handle them. Members would bring real life situations to the group and discuss it. People would role play - for example one person playing the role of trying to get their PR approved, and another person playing the role of an engineer who refuses to approve. It would be fun.
@kdietz65
@kdietz65 2 жыл бұрын
Good advice. Beyond a few technologies that I'm confident will be in my long-term toolkit, I no longer try to learn new technologies for the sake of learning them. I simply set a goal and learn whatever I need to learn to accomplish the goal.
@TheDeliberateEngineer
@TheDeliberateEngineer 2 жыл бұрын
I agree! Nothing wrong with learning new technologies, but if they're taking away time from doing your job better / getting more recognition, there might be better ways to spend the time :) Thanks!
@BeastinlosersHD
@BeastinlosersHD 2 жыл бұрын
I’m glad to know I was on the right track with how I am approaching an existing code base at my internship. You gave me SO many freaking nuggets of wisdom in this video and quelled a lot of my uncertainties about how I should approach things. Fantastic video!
@TheDeliberateEngineer
@TheDeliberateEngineer 2 жыл бұрын
Thank you, and thanks for commenting!
@timamet
@timamet Жыл бұрын
This is great content
@TheDeliberateEngineer
@TheDeliberateEngineer Жыл бұрын
Thanks & thanks for watching!
@teacherinthailan6441
@teacherinthailan6441 2 жыл бұрын
Thank you so much. It's very inspiring. I've actually been suffering from imposter syndrome (at least I think I have) as an English teacher, having had a lot of stress and failures in my life. Admittedly though, most were avoidable, but I think it's the guilt and shame that gets you. I am aspiring to become a programmer, and have just submitted an application to a university in computer science, so this advice is very welcome by me. Therefore, I'm sure that I'll be referring to it and your other videos in the future. Cheers.
@TheDeliberateEngineer
@TheDeliberateEngineer 2 жыл бұрын
Sorry to hear about the problems being an English teacher. I really loved being a programmer for me career, hopefully you will too. Before you go to university, check out the ones you're picking. Make sure they have job placement / career services and are visited by companies you want to work for, if at all possible. They don't have to be expensive or fancy universities to have this, and you can usually find it by spending a little time on their website.
@TheCodejuice
@TheCodejuice 2 жыл бұрын
Hi John. Great video as always. I am wondering if you can make a video on learning how to talk about past experiences. As a newer "engineer" (inflated title), I feel as though I am not very good about talking to recruiters about what I do at work. Agreeably, as time goes on, I have more and more to talk about but the level of abstraction I need to use for confidentiality is hard to manage still. I respect my employer and feel an obligation to "do no harm"; however, simply stating that CRUD is involved in my day to day feels rather... bleh. How do I logically explain tech stack, infrastructure, and my role in the project without overstepping?
@TheDeliberateEngineer
@TheDeliberateEngineer 2 жыл бұрын
It's critical to get used to explaining your work at a variety of levels, from something you can tell an artist friend to something you'd tell a peer. You should also be able to give a very short description (e.g. elevator pitch) or dig into the nitty gritty. You can talk about your work generally (in most cases) as long as you don't reveal trade secrets. For example, I can say for my last job, I was working on a graph database, digging into the query patterns to see if they needed a graph database, or if they would be better off in a traditional relational database. And I could talk add-nauseum about that, consumption patterns, etc. None of that would be a problem. If I was just doing data mining, I'd give examples of the types of things I look for, how complicated the queries can be, and the value to a good result. You need to be able to talk about your previous work - good to practice these different levels of detail and abstraction!
@AjayKumar-xx6zz
@AjayKumar-xx6zz Жыл бұрын
Amazing video!!! As a software engineer at early stage startup, is system design skills needed? Shall I learn about full stack, or infra related work is also needed?? Thanks in advance!
@TheDeliberateEngineer
@TheDeliberateEngineer Жыл бұрын
Thanks for watching. At an early stage startup, ALL skills are needed. You need to be flexible about doing what needs to be done, and doing it quickly. The type of skills which are most critical depend very much on the kind of startup, so I can't be more specific.
@pieflies
@pieflies Жыл бұрын
Often at startups or small businesses, learning is more reactive than proactive. You need to learn about whatever is needed to solve the current most important problem. Then when your solution is good enough you move onto the next problem. You tend to learn a lot about a broad range of topics, but it can be hard and stressful work at times, depending on how well the business is run.
5 tips to be a more productive software engineer
15:33
The Deliberate Engineer
Рет қаралды 3,4 М.
Should you be an AAA game developer?
14:16
The Deliberate Engineer
Рет қаралды 1,5 М.
Чай будешь? #чайбудешь
00:14
ПАРОДИИ НА ИЗВЕСТНЫЕ ТРЕКИ
Рет қаралды 2,2 МЛН
1 класс vs 11 класс (неаккуратность)
01:00
Эффект Карбонаро и бесконечное пиво
01:00
История одного вокалиста
Рет қаралды 6 МЛН
C++ or Java for commercial software?
11:39
The Deliberate Engineer
Рет қаралды 1,5 М.
Software Engineering Process - tips from a principal engineer
16:26
The Deliberate Engineer
Рет қаралды 2,5 М.
1st Q&A with @TheDeliberateEngineer , a principal engineer and manager.
1:05:21
The Deliberate Engineer
Рет қаралды 2,7 М.
6 Tips for Senior / Principal Interview Prep
13:24
The Deliberate Engineer
Рет қаралды 7 М.
Does getting away to work, work?
9:55
The Deliberate Engineer
Рет қаралды 937
Internet privacy is an illusion!
6:03
The Deliberate Engineer
Рет қаралды 1 М.
The Myth of Easy Code Re-use: be skeptical
10:39
The Deliberate Engineer
Рет қаралды 1,7 М.
Object-Oriented Programming is Bad
44:35
Brian Will
Рет қаралды 2,3 МЛН
Be explicit to prevent disappointment in your next job!
8:56
The Deliberate Engineer
Рет қаралды 2 М.
wyłącznik
0:50
Panele Fotowoltaiczne
Рет қаралды 24 МЛН
Will the battery emit smoke if it rotates rapidly?
0:11
Meaningful Cartoons 183
Рет қаралды 4,5 МЛН
Main filter..
0:15
CikoYt
Рет қаралды 988 М.
Где раздвижные смартфоны ?
0:49
Не шарю!
Рет қаралды 540 М.
i love you subscriber ♥️ #iphone #iphonefold #shortvideo
0:14