{"id":11005,"date":"2021-02-26T16:55:13","date_gmt":"2021-02-26T14:55:13","guid":{"rendered":"https:\/\/kodingtech.com\/?p=11005"},"modified":"2021-02-26T16:55:13","modified_gmt":"2021-02-26T14:55:13","slug":"behind-the-scenes-of-the-programmers-life-interview-with-alex-tuca","status":"publish","type":"post","link":"https:\/\/kodingtech.com\/en\/din-culisele-vietii-de-programator-interviu-cu-alex-tuca\/","title":{"rendered":"Behind the scenes of the programmer&#039;s life - interview with Alex Tuca"},"content":{"rendered":"<p class=\"wp-block-paragraph\"><strong>Who is Alex Tuca and what is his role in the KodingTech team? (opportunity to talk about yourself in the third person).&nbsp;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"has-inline-color has-black-color\">Alex is a dev who does a little bit of everything related to technology, is curious about everything and from some point of view: hipster. I would love to have a big vinyl collection, so I understand why. His main role is to implement the philosophy <a href=\"https:\/\/kodingtech.com\/en\/\" class=\"rank-math-link\">KodingTech<\/a> and on a technical level, through architectural ideas, languages, and tools. He&#039;s a bit of a weird guy sometimes, but I&#039;ve heard he&#039;s okay (and that he really likes to talk about himself in the third person).&nbsp;<\/span><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>When it comes to programming, things seem mysterious to outsiders. In a few words, what does it mean to be a programmer? What qualities do you need to have, what are the skills that can \/ cannot be learned.<\/strong> \u202f\u202f \u202f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"has-inline-color has-black-color\">In my opinion, being a programmer is just a specific way of saying &quot;solution seeker&quot;. Many say that you have to be an expert in mathematics, or have well-developed analytical thinking (read &quot;left brain&quot;) as if they were singular skills that together make a programmer. I believe that programming is not so much about analysis as it is about creativity. To make an analogy, technique itself teaches you how to use a pencil, but creativity tells you how to put it on the paper (or the cursor on the code editor). I also believe that analytical thinking and creativity are both tools that develop - I don&#039;t think you need &quot;talent&quot; for programming, but practice. Lately, there are many people who want to learn programming and start directly learning how to make an application or a game, but I believe that anyone who wants to call themselves a programmer must go through classic algorithmic problems (the kind of problems you find in high school textbooks). They will not teach you to do something useful on your own, but they are essential for understanding how to &quot;talk&quot; to a computer (in the same way that when you move to another country you can get by if you learn the language, but to really enter their world you have to learn about their culture). Creativity is also trained, and a good resource on this topic seems to me to be the book &quot;Serious Creativity&quot;, by Edward do Bono.&nbsp;<\/span><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How has the dev environment and philosophy, tools, etc. (Bunnyshell) evolved in the last 5 years?<\/strong>)?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"has-inline-color has-black-color\">Dev is evolving at an extremely fast pace, so 5 years is almost an eternity. The word that seems to have conquered the field in the last 5 years is \u201ecollaboration\u201d, with the adjacent \u201eopen-source\u201d. The trend in the industry is to move towards a more open ecosystem, where we use tools written by others and we write for others. About 5 years ago there was a resounding moment that demonstrated this: Microsoft; the great, colossal Microsoft, made the .NET stack (which contains the programming languages used on Windows, such as C#) open-source. In parallel, around that time, movements began to appear to ease the dev process, eliminating the adjacent parts that made the programmers&#039; experience more difficult. For example, frameworks like React Native (https:\/\/reactnative.dev) or Flutter (https:\/\/flutter.dev) have emerged, which allow programmers to write an application for multiple platforms, so that the focus is on developing a great experience for the end-user, not on updating Android and iOS implementations. The &quot;backend&quot; side has also been greatly improved, so there are tools like <a href=\"http:\/\/www.bunnyshell.com\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\">Bunnyshell<\/a>, which automatically handles the complicated parts of managing a server. There are also Platform As A Service tools like Azure App Service or Firebase, which abstract away the presence of a server altogether. The philosophy is focused on how to deliver a better experience to more people, quickly.&nbsp;<\/span><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What are the hot languages at the moment? <\/strong>\u202f\u202f \u202f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"has-inline-color has-black-color\">For better or worse, the most popular language by far is JavaScript. (Almost) everyone in the programming world knows it, being very easy to learn and being pretty much the only option for the web, so many jump straight to it. I for one am not a fan of JS (although I use it) and I think there are two categories of hot languages at the moment. The first of them is represented by languages with native multithreading support (in Romanian, languages where it is very easy to use multiple processor cores in parallel), because anyone who has had to implement threading support on languages like Java or PHP (which were designed long before this need, so their implementations are extremely cumbersome) knows the heartache. The most &quot;in vogue&quot; examples right now are Go and Rust, being extremely easy to really use the resources you have at your disposal thanks to them. The second category is represented by languages that solve the problem of a billion <a href=\"https:\/\/www.youtube.com\/watch?v=NB_VBl7ut9Y\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\">dollars<\/a>. Almost all programming languages have the concept of \u201enull\u201d which means \u201enothing, something that doesn\u2019t exist\u201d. In traditional languages, you have to remember to deal with the presence of this \u201enull\u201d everywhere in your code, and this is by far the biggest oversight in the code written by many (a Google search for \u201eNullPointerException\u201d returns 3.6 million results, accordingly). In this painful context, \u201enull-safe\u201d languages have emerged, which force you to check whether a variable can be null or not from the first time you write the code and thus avoid a LOT of headaches. Two examples of such cool languages are Kotlin (the programming language used in recent Android apps) and Swift (the programming language used in recent iOS apps).&nbsp;&nbsp;<\/span><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Frontend vs backend vs full stack <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u202f<span class=\"has-inline-color has-black-color\">There is no mind without a body, just as there is no body without a mind (although we are sometimes tempted to contradict this). In the same way, a product is composed as much of the backend as it is of the frontend, and both come with their own challenges. When people think of \u201efrontend\u201d, the first thing that comes to mind is \u201eit writes what the application looks like\u201d, which I think is a serious underestimation. \u201eWhat the application looks like\u201d includes being intuitive, having large buttons, good contrast, fonts that match each other, complementary colors, but also less obvious things, such as the experience of those using screen reader solutions (we must remember that there are approximately a billion people with disabilities who require such <a href=\"https:\/\/www.youtube.com\/watch?v=bWbBgbmAdQs&amp;feature=emb_title\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\">solutions<\/a>! Also, the almost infinite combinations of screens on which their applications appear give them an extra challenge<a href=\"https:\/\/stackoverflow.com\/search?q=center+in+css\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\"> (besides the most\u2026elementary ones, like centering elements)<\/a>. When it comes to backend, it&#039;s essential to think about all the possibilities - if you&#039;re running an online store and the person passes you to &quot;Card number&quot; their card number is ok, but if they write you the three volumes of Morometii in full, what do you do? You&#039;re actually translating the business into code and you&#039;re the last line of defense for it, so you&#039;d better know what you&#039;re doing.&nbsp;<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Framework, productivity? \u2013 how to work efficiently?<\/strong>\u202f <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"has-inline-color has-black-color\">If we talk about programming itself, a trend that I really like is that of frameworks. Other people have done the tedious work for you, so that you can focus on the parts that make you unique. The dev field that I specialize in is mobile applications, and thanks to tools like Flutter or React Native, I haven&#039;t written native Android and iOS code in about 4 years. In translation, instead of writing the same business logic twice, I have time for new functionality that the user (and ultimately us) can take advantage of. Of course, there is also the other extreme, where we jump straight in and use them for everything, which is again not good. If you are making an application for a &quot;third world&quot; country where the internet is limited, you would do well not to use a framework (which implicitly comes with a cost in the form of a larger application size). If we&#039;re talking about a working framework, &quot;iterate and fail fast&quot; is all I can say. Long live Scrum.<\/span> \u202f\u202f \u202f \u202f\u202f \u202f&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How should building an application be approached? Master view or each programmer with their own piece? <\/strong>\u202f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"has-inline-color has-black-color\">I think it&#039;s essential that everyone on the team has at least some idea of what the final product should be. If you stay stuck in your own bubble, you&#039;ll create an experience that begins and ends with that, and no one wants that. Also, if you know what the final product should look like, you have the added determination to contribute to something bigger than yourself - spiritually relaxing.&nbsp;&nbsp;<\/span><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tell us a technology\/language that annoys you.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"has-inline-color has-black-color\">PHP. Since I started coding, the answer has remained the same, and there&#039;s little chance it&#039;ll ever change. A language made over 20 years ago, for needs over 20 years ago, that has had a lot of duct tape put on it over time to keep up with changes. Needless to say, it&#039;s horrible. Good luck using PHP without a framework like Laravel or Symfony. It&#039;s just a shame because it&#039;s the most widely used backend programming language. It&#039;s nice to be old.<\/span>. \u202f\u202f \u202f \u202f&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u202f<strong>What do you think is the future of programming?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"has-inline-color has-black-color\">If we talk about trends in the near future, from my point of view, convergent experiences will take off. We have more and more devices, and the next step is to have an experience that starts on the phone, continues on the watch and ends on the refrigerator: here is an example <a href=\"https:\/\/www.youtube.com\/watch?v=H0x7YkDvo0E\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\">Samsung<\/a>. Of course, with augmented reality, the possibilities are endless. There are so many flows that would benefit in this context (for example, what if you could see the furniture you want for your apartment directly in the room, and when you press &quot;Buy&quot; the necessary measurements would be automatically taken for the carpenter to adjust it?), and bright minds will take advantage of the possibility. Maybe long after these innovations, it will be possible to schedule online for the bulletin at Sector 6. Hope dies last\u2026 Mac, Windows or Linux? Why? All of them. It seems stupid to me to advocate for a system as if it were good at everything \u2013 each has its pros and cons. Windows is a god when it comes to productivity (see all the keyboard shortcuts and Aero Snap, which is far superior to other platforms&#039; solutions), Mac is the easiest place to be creative (Sketch, Garageband, the list goes on), and Linux is a programmer&#039;s paradise (anyone who&#039;s tried using Docker on Windows knows what I&#039;m talking about). At the same time, BSODs are more common on Windows than we&#039;d like, and good luck using unconventional multiple monitor combinations on Mac and Linux. It&#039;s all about balance. Use what suits you best. <\/span>\u202f \u202f\u202f&nbsp;&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is there seasonality in programming? What about trends? Can you give us some examples? <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u202f<span class=\"has-inline-color has-black-color\">It doesn&#039;t seem to me that there is seasonality per se, but that programmers get bored quickly. Today there is object-oriented programming with its pluses and minuses, tomorrow there is reactive programming, which has other pluses and minuses. This, of course, turns into a race in which reactive programming has to solve its minuses that coincide with the pluses of object-oriented, but before that happens the next trend appears, and the cycle repeats itself. At least on a major level. It&#039;s fascinating to watch the smaller movements, which nevertheless never die; see all those who have been making computer games for more than 25 years. See <a href=\"https:\/\/www.youtube.com\/watch?v=NB_VBl7ut9Y\" class=\"rank-math-link\" target=\"_blank\" rel=\"noopener\">here<\/a> Planet X2 for the Commodore 64, The Making Of.&nbsp;<\/span><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Lucky question: here you choose the question and answer accordingly.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"has-inline-color has-black-color\"><strong>What is your favorite number?<\/strong> 100000000000000666000000000000001. It is the largest prime number that is also a palindrome \u2013 it reads the same from head to tail and from tail to head. It also has a \u201edemonic\u201d nature (it has 13 ones on each side \u2013 13, an unlucky number, in addition to the obvious 666 in the middle), which hints at very interesting mathematical coincidences, which greatly complicate the debate about whether mathematics was invented by us or existed before us.&nbsp;<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Cine este Alex Tuca si care este rolul lui in echipa KodingTech? (oportunitate de a vorbi depre tine la persoanala a III-a).&nbsp; Alex e un dev care face cate putin din tot ce tine de tehnologie, este curios despre orice si din punctul unora de vedere: hipster. Mi-ar placea sa am o colectie mare de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11080,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_breakdance_hide_in_design_set":false,"_breakdance_tags":"","footnotes":""},"categories":[4,5],"tags":[],"class_list":["post-11005","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kodingeers","category-kodingtech"],"_links":{"self":[{"href":"https:\/\/kodingtech.com\/en\/wp-json\/wp\/v2\/posts\/11005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kodingtech.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kodingtech.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kodingtech.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kodingtech.com\/en\/wp-json\/wp\/v2\/comments?post=11005"}],"version-history":[{"count":0,"href":"https:\/\/kodingtech.com\/en\/wp-json\/wp\/v2\/posts\/11005\/revisions"}],"wp:attachment":[{"href":"https:\/\/kodingtech.com\/en\/wp-json\/wp\/v2\/media?parent=11005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kodingtech.com\/en\/wp-json\/wp\/v2\/categories?post=11005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kodingtech.com\/en\/wp-json\/wp\/v2\/tags?post=11005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}