You're a front end developer, but they really need someone to fix that Java applet. You live for back end, but they need someone to work on the website UI. Have you ever had to code "outside your comfort zone"? How was your experience? Do you feel like you grew as a developer? Or did you crash and burn?
Well, I did so recently I'm mainly a front-end developer and was asked to develop a complete components [Full Stack] using a Python based CMS named Wagtail I did so with my experienced colleague who helped me a lot
I never used Python or Django before so everything was totally new to me I wrote the components and did the unit tests
The experience was truly amazing Oh my God I'm writing Python! and unit test it!
It really added a lot to me as a developer You learn different development paradigms other than what you used to
And it's funny cause to better learn JavaScript for example you need to learn other languages
If we stay inside our comfort zone, we're going to get bored real quick. I can't point to a time where I would say the experience didn't help me grow. There definitely were times where I knew that wasn't what I wanted to do on a continual basis, but I always learned something from the experience. For example, I now know, to a limited degree, how to create a Word or Excel documents programmatically using OpenXML. Didn't know that before. Don't want to do it continually, but at least now I know what to do the next time I have to face that task. So, yes, definitely growth.
I just recently tried to create an Android app with just a "simple" web app container with offline support. Turned out it is almost impossible job when you have zero knowledge of Java. I thought I just create a webview like in Electron app. How wrong I was..
Another bad development experience with Android was when I tried to debug simple web app manifest with Chrome for mobile in Android simulator. Turned out there is no Chrome in the simulator. So only way to debug would be to buy an Android. Thanks Google!
This happened in 2013, in my first company. I joined the company as a Java developer and worked on some projects for a few months. Around November I was asked to work on a project that was built with Adobe Flex and ActionScript. As I started working with these technologies I learned more about them. I was happy about the fact that I was contributing to the company's growth. But I really felt that the UI should have been built with HTML, CSS and JavaScript instead of Flex. It had a lot of limitations and complexities. And I never liked .mxml to .swf compilation process. Soon I proposed to build the new UI using HTML, CSS, AngularJS and also built some prototypes. It was liked by everybody, but sadly never went live.
Working on Flex was out of my comfort zone, but I went ahead and delivered the code. Although I am not a big fan of ActionScript, I learned a lot about best practices, code organisation, concepts like two way data binding etc by reading existing AS code. Eventually, I got the chance to build the app using newer technologies. So, all in all it was a good experience. Every software engineer at some point will need to get out of their comfort zone and work on something different. You may not like the tech, but you will always learn something new.
I'm a backend guy, I been working on backend for the last 10 years or more. In the last two projects, I had to take the lead on the front end development not only by deciding the tech stack but also coding the complex parts and also helping the front end guys to solve some problems, even when this is requiring from me extra effort I'm really happy because I'm learning a lot about web front end development which it's becoming more robust and nice to work these days with libraries like react and frameworks like angular.
So as summary, yes, I think that it's an opportunity that makes you to grow as developer and helps you to help more to estimate those tasks that are outside of your "confort zone".
As a self-taught programmer with a scripting language, algorithms are my nightmare, no mention text analyzing and compilers. But I do want to build an alternative React and altjs language, it's been my dream for years.
So diff algorithms, I read the code people wrote immutable-diff and immutable-patch, that's almost what I want but need to be more complex. Also I asked my friends about LCS algorithm and got quite some hints. It took me months to finish and got my own React clone.
Text parsing is hard too. It took me a lot time to read posts explaining LR, RR, parser combinator, state machine. Then I slowly got to know many of the knowledges and created my own little parser, and parsed indentation with my own code. That made me quite satisfied since after I knew how parser is working. Language syntaxes is no longer a magic to me. Although parsers like ES6 are still kind of black magic. For compilers, no, still too hard to learn.
It's interesting when I have enough time to work on them and after all these two problems are still small. I guess if I was facing emergent problems, I would burn instead. It would take really a lot time to catch up.
In this year (2016) I changed of job and pass from a PHP/SYmfony developer to a PHP/PHalcon & AngularJS developer, that become a big change in mind, because i was confortable with backend development and need to learn frontend ecosystem and now we have 2 code structures to maintain :)
Long ago I was just a bad PHP developer. I hated JavaScript and used simple HTML and CSS which I didn't liked either. I also had 0 designer skills and couldn't make a simple images with transparent background myself, I hated that job too. (That time to make a rounded or more exclusive box corners you needed to make images for that). I also liked to work from my own PC and not from office. I disliked many other frameworks.
"Growth begins at the end of your comfort zone"
— The Illusion of Comfort, Thomas Oppong, Medium - The Mission
10 years later. Everything changed, backend engineer without JS knowledge today is not a backend developer and UI engineer who can't make/edit views/templates himself is not a UI engineer.
I had to jump outside of my comfort zone so much because business needed it and because I wanted always more. And yes, my butt crashed and burned many times at the beginning. My experience was crazy and I feel awesome because I "grew" into a Swiss army knife full-stack software architect-designer-manager. Not mentioning startup, business and legal skills.
"An entrepreneur is someone who jumps from a plane without a parachute, and figures out how to build one on the way down."
— Matt Salzberg, Founder & CEO at Blue Apron
We all fear from unknown. Just do everyday something new, don't care about others, do whatever you want. You made first step and your lazy ass wants to stop again, just say "f--k this, let see what will happen" and keep going.
Sandeep Panda
co-founder, Hashnode
Chaim Lev-Ari
JS
A few years ago I was accepted into a position as a trainer for a specific platform, because of my basic knowledge in html and javascript. A few months later I'm writing robots in full javascript to use in the platform. As my boss saw that I'm good with computers he always tried to make me work on stuff outside my comfort zone. Building prototypes for ideas he had, working as IT manager in the company, going for different projects in different places and more. After about 1.5 years, we started a new idea, that is now a working product (or more - it was separated after a few working months) and a new startup company. I'm proud to be the first developer to work in that company and the first one to write code for the solution. I started working on this product with a basic knowledge in JS, no backend stuff and no framework (only vanilla and jquery). Today I consider myself as a good javascript developer, with knowledge in both AngularJs and ReactJs and knowledge in C#, .Net and more.
It's all thanks to my boss which believed in me and throw my out of my comfort zone once and once again.