Arturs Sosins - An interview of a programmer

The birth of a programmer

 Q1: Thanks for taking time off from the constant inflow of fixes and product road map delivery. To help our audience understand you, let's go back to the beginning. Can you share when and why did you start taking up programming? 

A:I did not become programmer intentionally. In 2013, I graduated with a Master's degree in Computer Science, Information Systems Design from the University of Latvia, because I loved everything related to computers. On the first year I tried a bit of everything. Networking, System administration and yeah, also Coding/Developing. I mostly selected broad knowledge classes, because I did not know what I wanted to do. Until I ended up in Web development classes. And there, the ability to do something and publish it for everyone on the Internet to see, astonished me. And that is when I decided to become a programmer and took Web Development as my primary course (apart from web development I also learned C++, Java and .Net, but I didn't enjoy anything as much as both frontend and backend development)

 

Q2: Thinking back on those early years, what skills did you pick up that have remained relevant till today?

 A: Since I did not know what I wanted to become, I took broad courses from different domains, so one of the most important skills I learnt is to learn and comprehend new information quickly, skim through the text and still understand it, start with small information I have and build incrementally, not trying to understand all in one try. 

From programming related, since I tried many languages and environments, I think most important thing was to learn the basic, the architecture of coding, different types of languages, and what makes them different. After that you can basically code in any language, because when you understand all paradigms, all what changes is simply syntax (in which proper IDE's would help you either way)

 

Q3: What advice did you get then that still resonates with you? 

A: I think one of the most important advice I got from a professor is do not learn to get good marks, but learn for yourself, for your own experience. That way I was not afraid of taking really complex courses, even if I did not get good marks at them (cause yeah, I also got bad marks and even failed a course once), but that allowed me to broaden sight and many-sided knowledge and enjoy great experiences (like in robotics class, one of the best experiences I had).

 

Developing professional skillsets 

Q4: Technology moves very fast. Can you share how you have kept your skillsets relevant? It would be great if you could share three names on Github or other communities that you follow closely. 

A: Not simply follow, but I actually co-host a monthly podcasts one on Javascript (jsclasses.org) and other on PHP (phpclasses.org) related news and libraries/frameworks for them. I've basically built my twitter feed based on the news I want to receive about technologies I'm interested. But if I would have to pick up three main sources for information those would be: 

https://dzone.com/

http://www.devshed.com/

http://www.sitepoint.com/

 

Q5: How do you think technology, in particular mobile, will move in the next 5 years? And what are you doing to develop your skills as a programmer in line with these changes. 

A: I think the mobile development currently is too fragmented. Not only on the same platform, like Android is too fragmented, but basically on all platforms. You need different code bases for iOS and Android apps (not mentioning others, like Windows Phone). And I think this will be the first problem to solve in the next 5 years. And I'm myself, as one of the maintainers of Gideros, a cross platform game development tool, often try to learn ways of different platforms and match them under same API's using common interfaces. And honestly, underneath, even with their own quirks, they have lots of common approaches. Like In app purchases, push notifications, even UI widgets, while looking completely different their API's are similar, with similar options that, with some limitations, can be matched under one interface. 

 

Q6: I noticed that you have worked exclusively for start-ups and actively contributed to open source communities. What have you gained from these experiences? 

A: Right from the start, when I started working as a web developer for a small local company, I created lots of small libraries, that I used myself and also published them on the Internet for others to use. And of course I got lots of responses (including critique, etc), but one of the main things I gained is more opportunities.  

Publishing small Javascript libraries, landed me an additional paying job, writing Javascript articles for a JS Magazine. 

Sharing my components I created for Gideros engine, put me as first on the line to get the job there, when the spot opened, which again led to more opportunities, like writing a book about Gideros.  

And even with my current employer, Countly - an open sourced analytics company, when I got interviewed, I told them I have no experience with NodeJS, nor with MongoDB, and they said: "We don't care", since they saw all my work that was published and open sourced. They saw all the comments and praises from community I was helping out, and all that feedback was enough as a resume for them. Are they happy with their choice? I don't know, try asking them, but I'm working hard and I like doing what I do now :) 

And basically this is what you get for contributing to open source projects. You get acknowledgments, reputation and many opportunities opening up for you.

 

Working locally,Connecting globally 

Q7: What do you perceive to be the strengths and weaknesses of Chinese developers? 

A: I worked with Chinese developers during Gideros Engine development, there were many Independent developers adding their own needed native features (like specific Ad frameworks, etc) through plugin system. I worked closely with them to help them creating these Gideros plugins and integrate in their games. 

The Chinese developers I had pleasure to work with pay great attention to details. While European developers can be sloppier, especially when time matters, to finish things before deadline, then Chinese developers would follow every step through, to ensure everything is done the way it should be, even if it takes more time to do so.

If I would have to sum it up, I think one of the great weaknesses of Chinese developers would be too much concentrating on specific domain of knowledge, working in their own small sphere, and not trying out other technologies.

 

Q8: What are the areas where European developers can complement their Chinese counterparts? 

A: The great strength is the sense of responsibility, especially in West European developers. You just know you can count on them to do the job :) 

European and Chinese developers can complement each other in the same team, they could find a middle way to solve the problem. 

 

Q9: In your opinion, how can we achieve these areas of cooperation (mentioned in the previous answer) in five years? 

A: With our interconnected world, everything is possible now. We should share the experiences between development approaches and work ethics. As I'm myself mostly working remotely know, I'm sure there is a possibility to combine different developers in single online teams to work together on the same projects (this is already happening in open sourced communities) allowing us to find our own ways to cooperate and learn from each other, to increase our strengths and complement our weaknesses to eliminate them.

=== 

Ending statement: I have specially formulated these interview questions to be interactive. As developers, we should take stock of our professional development, though we are often reluctant or too lazy to do so. If you don't mind, please send me your replies via email at [email protected] as our team at Countly would love to hear your stories. These contributions will remain private and confidential. 

You can answer this set of questions with the following changes: Q6: insert your own experience instead of Arturs' experience. Q7: insert "European developers" instead of "Chinese developers". Q8: answer how Chinese developers can complement European developers.


你可能感兴趣的:(移动开发,countly,培养专业技能)