📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Что делает программист весь день? Показываю

Владимир Балун23:23

Transcription

Hello everyone. There are people who study programming independently and want to find their first job as programmers. But these people most likely do not know what awaits them in their first month of work and what they will have to do there. Therefore, I am now in Rostov-on-Don near the office of a small company called Nebo, which is engaged in outsourcing development. And I would like to show what exactly a developer does in this small company. There are many different videos online about how the workday of a developer at Yandex, VKontakte, or any other large company is structured. But not everyone succeeds, not everyone can, and not everyone wants to work in these large companies. Therefore, I chose a small company in the Rostov region not for nothing, and using its example, I will show how the workday of a developer in a small Rostov company is structured. Today I will not be alone. Roma will be with me. We will take his workday and see what he does at work. Roma, hello. Please tell me, what do you do at Nebo company? >> I am a front-end developer, I participate in the development of web applications. We have a team of five people. We are developing a service for online fitness classes. Okay, let's go, I'll show you my workday. >> Yes, let's go. >> It's not that simple. No, no, no. [music] >> So, we are now in the office. Can you please tell me. You came to the office, how does your typical workday begin? >> The morning in the office usually starts with tea or coffee. >> I see. By the way, I see that PHP is written on your mug. Can you tell me why you chose this particular programming language? Do you like it? >> Of course. At first, I started learning Python, but at some point, I had a PHP course at the university. And it drew me in, I was attracted to this programming language because it is quite, uh, simple, flexible, uh, and I started studying it more thoroughly, in more detail, uh, and got my first job related to this programming language. >> Cool. Uh, look, a question. We are now in the office. Regarding the work format, can you come to the office anytime, is your schedule regulated, unregulated, can you work remotely, can you share more about all this. After six months of working in the company on-site, we have the opportunity to switch to a hybrid model. That is, you can work both from home and remotely. >> So, how do you work most of the time now? I work mostly in the office because, well, damn, look at our cool office. [music] >> Yes, I agree, >> how can you not work here. Uh, and plus the atmosphere and direct interaction with colleagues, with the team lead – it's more convenient than chatting or calling remotely. [music] >> Roma, please tell us a little about Nebo company and share your story. How did you manage to get here? >> Nebo company is an IT company that develops various solutions for most businesses. Mostly web applications. We also develop LLM and, uh, other things. I got a job here a little less than a year ago, probably. And, uh, I was just looking for a job, like most guys. So. And it happened that I searched for a very long time, specifically on platforms like Hunter, uh, hh Career. But, uh, it happened that we corresponded with the HR of this company by email. So, I just went to the company's website, looked at it, evaluated it, and decided to write. >> As far as I know, this is not your first job, but let's try to recall your first workday when you got your first job, came to work. How did it all happen for you? >> Probably, there was some excitement. I needed to get into the work processes, in general, to understand what was happening. I arrived, immediately met everyone. They welcomed me very warmly. On the first workday, we all gathered and had tea as a company. So there was time to chat. Such an onboarding, you could say. [music] >> Roma. What attracted me most about this office is that we are now in the kitchen. It might seem like a simple kitchen, but at the same time, the server is located here. Please tell me, why is it located in the kitchen? >> This is our so-called organ of our office. The thing is that we are currently renovating the basement, and it is waiting to be moved there. And for now, this is its temporary shelter, but it has already become like a native here. >> I see. So it's a temporary situation, >> yes? Yes. >> Okay. Please tell me, what is inside there? What services, maybe, are running there or products? >> Our [music] part of our infrastructure is running there, uh, some of our clients' projects, uh, some of our services, company services. Well, as you can see, there are one, two, three, four racks, uh, on which something is happening. >> I anticipate the viewers' question. There is light here now, but what will happen if the light goes out? >> The server runs on UPS for about an hour without power, so yes, it's quite short to maintain the operation of the sites that are there. But it's enough for a graceful shutdown so that nothing breaks. [music] Please tell me more about your workday. In general, how much [music] do you write code? >> Maybe you write little, maybe a lot? How much do you read code? So, in general, how much time does the code writing process take for you personally? >> It varies, actually, sometimes there are days when I come and just sit from morning till evening and write code. And sometimes it happens that I have to discuss a lot, redo something, yes, so I have to think very carefully about something, so to speak. And this also takes time. So, sometimes I just come, [music] and I will think about the task for a very, very long time, and at the end of the day, I will do something, write a few lines that will work. But if we take the average, on average, how many hours do you write code each day? >> Uh, well, probably about five hours on average. >> Okay. >> Roma. We have finally reached your workspace. Please tell me, you come to work and open your computer. How does your workday begin? >> Well, actually, I repeat, first I pour myself some tea. Uh-huh. >> We have a tradition in our company to drink Chinese tea. In the morning, afternoon, evening. >> And we gather downstairs too. By the way, [music] in the evening we can have tea together. >> Okay, thank you. >> And I open my laptop, I bring my personal one because it's more convenient for me. That is, I work on it both at home and here. I come here, connect it, open it, everything starts up immediately. I open it, go to the task tracker. And here I have the tasks that I need to do, or those that I am doing, >> and, uh, собственно, the code that I am working on. Please tell me, people who are not yet programmers will be watching us, and they might have a question: "Why is this task tracker needed? Why can't you just keep what you need to do in your head?" >> Uh, you can, of course, but it's probably unrealistic, [music] because there are really a lot of tasks, they are absolutely diverse. And here, managers create tasks. You can categorize them, add titles, descriptions, and easily drag them between statuses. So there are tasks that are, so to speak, in the queue, there are those that are for execution, there are those that I am currently working on, and there are those that are being checked by higher-ups, >> guys. So. >> Yes, let's take, for example, what tasks do you have today? >> Today my task is to implement the creation of a chat upon the occurrence of any actions in the system. I have been working on this task for 2 days. I really hope to finish it today. Uh-huh, but, well, >> but it happens differently, right? >> It happens, yes. >> Okay. Please tell me, a task comes to you, how is your process structured, who gives you these tasks, how do you find out about these tasks? That is, it would probably be interesting for viewers to know this. >> Well, all tasks are set in agreement with my team lead. >> Uh-huh. >> A task is set, I take it into work, and start performing it. Upon completion of the task, I move its status to for review. >> Uh-huh. And, uh, then it is checked either by testers, or the code is reviewed by my team lead, the code says what's wrong, it's sent for rework. Or, if everything is fine, the task is immediately merged into production. >> Okay. Look, your daily tasks are presented here. A question: maybe you have some tasks or plans for a month, a week, a year, or some goals? Or how is this process structured in general? I would also like to know. >> Of course, there is some planning, but at the level of ordinary developers, it is usually, well, not valued. That is, someone is responsible for everything, for all the planning. So, you have short-term planning, you see tasks in a small time frame. Okay. >> Managers or team leads are responsible for planning. Who, in fact, set the tasks. >> Uh-huh. [music] >> Can you tell me more about your tasks? Do you have to think, invent something? That is, is there any creativity, or are they mostly routine tasks? That is, can you share more details? >> Yes, undoubtedly, there are routine tasks, as in any job. [music] But quite a lot has to be invented with my own head. Uh, a lot, again, has to be discussed with colleagues and the team lead. [music] So. And there is a creative process here too. >> [music] >> Roma, I have one more question. A task comes to you. You have it open, there's a lot of code, a fairly large project. >> How do you understand, the task is described in our simple Russian language, and this task [music] needs to be translated into code, in PHP, as I see. How do you understand where you need to go, what you need to do there? >> Uh-huh. Well, first, I read the task description in detail. And, in fact, here the task is related to the chat module. I go there. Within this task, I need to implement the chat creation chain upon the occurrence of any actions in the system. Uh-huh. >> Here I opened the file that is responsible for calling some functions of the chat module. For example, we have a chat creation command. And here [music] the chat itself, the chat entity itself is created. We have a function to add a user to the chat, to change the user's chat status, and to get all chat members, all its participants. Having all the above functions, I will, uh, use them to implement the chat creation functionality and, uh, subsequent message exchange. >> Roma, look, you have the task tracker open here, and this is open. You probably have other software that you constantly use as a programmer. Can you please share. >> Uh-huh. >> What kind of software is this? Well, besides the IDE and the task tracker, we have a corporate chat for discussing absolutely different issues, from, [music] uh, planning lunch orders to planning tea breaks. >> Uh-huh. >> So. And discussing some issues within tasks. Also, as a version control system, we use GitLab, our own corporate GitLab, which is deployed on our server. >> Uh-huh. >> So. And here, for beginners, tell me, why is a version control system needed? Many people might have a question. A version control system is necessary for collaborative work on a project. That is, many developers can work on the same program code to avoid any conflicts. >> There is also software for testing APIs. This is Postman. So, here, some API endpoints are simply tested. [music] >> I would also like to ask you a separate question about your workspace. Uh-huh. >> attributes. I am especially interested in this attribute. Do you have to show this to anyone? And how did you arrange your workspace? I understand that everything here is not just randomly placed. >> Yes, it's not just random. I tried to combine the design of my workspace with minimalism and art house, so to speak. So, here you can see a collection of candy wrappers, a bunch of mugs. It's necessary. And ducks, yes. And ducks, by the way, are needed to explain to them what you are doing, to find some solutions. That is, there is the principle of the rubber duck, and you explain the essence of your task to the duck and come to its solution yourself. Also here are all sorts of wooden things, all sorts of wooden things. Well, just for decoration. I don't have to show this to anyone. Yes. Just >> we keep in mind. Yes, >> yes, we keep in mind. Sometimes we just change [music] >> I understand the configuration. Cool. >> [music] [music] >> You said that you discuss various problems with colleagues quite a lot. Can you share how you get out of a problematic situation, for example, when you don't know what to do and how to do it. But the task still needs to be solved. >> Uh-huh. Yes, sometimes there are blockages, and these blockages are resolved in three ways. >> [music] >> The first is to ask for help from the team lead, the second is to ask ChatGPT. And the third is to Google. I do them in reverse order. First, Google, then go to ChatGPT. If ChatGPT couldn't handle it, then, well, I'll have to go to the team lead. >> [music] >> Roma, I have a question. I believe that the times when a programmer wrote code alone in some corner are long gone. More often, he interacts with various members of the team. Can you please tell us about your team, who is in your team, and with whom you have to interact? For example, besides developers, do you have testers, DevOps, designers, or someone else? Well, in my team, there are two back-end developers and two front-end developers. That is, back-end developers are responsible for writing the server-side code, and front-end developers for writing the client-side. Also, we [music] have testers on the client's side. And if I suddenly encounter any difficulties, if I can't do a particular task, or in principle, I need to discuss the functionality, I turn to my team lead Anton. [music] >> Yes, here he is. Yes, >> yes, you are sitting nearby. [music] We try to conduct as few unnecessary processes as possible, try to avoid bureaucracy, and try to create the most friendly relationships within the team. >> So, more work and writing code. >> Uh, not necessarily more work. We try to make sure that the work does not cause any excessive load. Because when people get tired, it's very difficult to work productively. >> Therefore, the atmosphere within the team is also important. It is very important how people communicate with each other, how leads communicate with developers, and so on. That is, we try to simplify as much as possible what can be simplified. Regarding the work processes themselves, well, in general, it's probably like with many. Initially, we plan a pool of tasks for the near future, determine which developer will be responsible for which task. We formalize this in the form of tasks in our system. So, for tasks, we use TTRAK. And these tasks then come to the guys. When the guys have any questions, we discuss everything, answer all questions, and try to make the task as clear as possible. >> The clearer the task is stated, the fewer questions will arise later, and the less rework will be required. >> Okay. Then a question arose. Let's imagine, Roma got a task, he wrote some code. How does this code get into production? What is your process before, for example, this code reaches production? >> Well, as Roma has probably already explained, we use a version control system. The code he wrote is sent there, formalized as a merge request. And this merge request is sent to me for review. I can show an example of such a merge request. For example, here we created a certain code fix. We found certain problems in the system's operation, determined the reasons why everything is happening, and found a solution and fixed these issues. And here is an example of how it can be formalized. Here we see some basic information, we see what work has been done, what changes have occurred. >> Uh-huh. >> So. Well, we see, this MR has already been merged, meaning it has been sent, already to prod. But, essentially, what happens next? We review the changes. If there are any questions, doubts, comments, they are all resolved in a working mode. After that, the code is sent to a test environment, it is checked, checked by testers, checked by me, checked by representatives of the client. That is, any interested parties can access it, look at it, check it. As soon as all checks are passed, with the client's agreement, we deploy it to prod. >> Do I understand correctly that this code is already on the server in the kitchen or not? >> Uh, yes, this code is already on the server. Moreover, well, you can pay attention, all our processes are automated, that is, yes, we never log into the servers ourselves. All, all processes are automated. Uh, each, each action goes through a lot of different checks to completely eliminate the human factor and the possibility of error. >> Cool, [music] >> Roma, as far as I know, you have been programming for 3 years. I mean commercial experience. Please tell me, are you developing during this time, that is, independently, are you studying new things, maybe taking some courses, reading books? And in general, do you think a programmer needs to continue developing when they get a job or it seems like they got a job, and that's it, you can forget about it and just do your job. >> Undoubtedly, you need to develop. When I started working, I was studying at university. And, honestly, one day at work gave me more experience than a whole semester at university. But, with experience, uh, [music] the more commercial experience you have, the less often you receive new information, uh, that is, in normal work processes. And, uh, you need to try to develop yourself. That is, I try to do my own projects in my free time, what interests me, to study some new technologies, programming languages, including, because, uh, without development, there is no growth. [music] [music] >> Guys, I want to thank you very much for providing a place for filming this video. Roma, I also want to thank you separately for taking time out of your workday to explain how your workday generally goes. And I want to thank you for watching this video to the end. Like if you enjoyed this video. See you [music] in future videos.