11 ms·
My wow moment was when I quit trying to do everything in the language I was comfortable with (PHP) and became a language agnostic engineer. Since then (2 years
by cagataygurturk 10y ago
My wow moment was when I quit trying to do everything in the language I was comfortable with (PHP) and became a language agnostic engineer. Since then (2 years ago) now I can write in 3 programming language, nobody can realize that I am new at these languages and I know that I can pick a new language up now in a very short time. I had to study so much in these last 2 years but since I love engineering it was funny rather than tiring. You do what you like and they pay for it, that is perfect. Before I used to search for PHP jobs and end up in low quality companies. After forgetting about languages, removing my limitations and focusing in engineering more than stack, my career significantly improved. Actually I got a tech management job in a big American company that I'd never imagine before.
- awinder 10y agoThis is the best advice on career management. Being able to break out of being "a php engineer" or "a java engineer" lets you target jobs and companies much more freely and ultimately lets you figure out what interests you as a developer in more real terms (and lets you go after it). It also sets you up to lead efforts on solving problems, rather than defining solutions in a more narrow window
- royka118 10y agoyeah defo, learning my second language was big step in my development
- bennyc 10y agofor the last 7 years i've been a php developer and i'm currently in the process of learning my second language, #c. it's good to hear that someone else has been through this process before me and said it was such a big step! thanks for giving me some more motivation!
- kibibu 10y agoI assure you many millions of people have been through this process before you! It gets easier after the second, particularly if you stick with mostly procedural/OO languages. So after C# you'll pick up Java, and maybe Python or Ruby in a heartbeat. Languages with fundamentally different paradigms will still be a little tricky - Haskell, Scala, Stan, R etc don't bear a lot of resemblance to PHP.
- weaksauce 10y agoI agree to a point... C# is fairly unlike ruby in its idioms. You will be able to write C# in ruby fairly easily but it's a language that doesn't benefit much from that.
- sundvor 10y agoAgree on this, and am at the same stage myself; C# is a huge transition from e.g. Php (or ColdFusion). Can't help but be amazed at the doors it opens up though - Pluralsight is definitely one of your friends here. Jon Skeet's walkthrough of C# 4, SOLID, the courses on DDD etc - so much to learn! :) MS Dev Essentials will give you a 3 month sub for free, if you didn't have that already.
- thr0waway1239 10y agoIn addition, you get to learn a lot of best practices from the trainers at PluralSight. If there were a similar company in the non Microsoft world with as comprehensive a library and as good a selection of trainers, I would love to know about it. Also, check out their learning paths for C# - it can be a good option to avoid the overwhelm if you are new to the language.
- jsingleton 10y agoC# is a really nice language. I'm hoping that the new .NET Core work will expand its reach beyond mainly Windows and get it popular on other platforms. Otherwise my book isn't going to do very well. :)
- lmm 10y agoMy experience is the opposite, interestingly. I used to know and use a wide range of languages. Being able to say "6 years of professional Scala" has opened more doors, and focusing on a single language has allowed me to learn techniques and algorithms rather than worry about the differences between languages so much.
- blandflakes 10y agoA colleague that I really respect told me at my last job that his career was a series of broadening and deepenings. He started with a deep knowledge of Java, but found that success came as he branched out into Python, Ruby, and Scala. At that point, he discovered that developing a focus on distributed computing with Scala was the key to the next level, and so on. I think half the challenge is identifying when its time to do one of those two.
- jjrumi 10y ago"I had to study so much in these last 2 years" --> Could you give a glimpse on what have you studied/read? I'm very interested. Thanks!
- cagataygurturk 10y agoIt is not like studying a course in a organised way.. Luckily we switched to microservices architecture in my company and thus many stuff had to be rewritten. The old monolithic application was PHP and PHP was deprecated for new projects company wide. So I and my team picked GO, JAVA and Node.js for different microservices we are responsible for. (Mainly JAVA and GO, we deprecated then Node.js unofficially in our team because we did not like it at all.) So as you have a well defined project and you have to finish it in the language you are new with, you start to research and learn a lot. Tutorials, blogs etc. And when I had a problem and I could not solve the problem because of my unfamiliarity in the new stack, I started to read also after work and I started to apply what I learnt the next day. Every day I started to have less problem or finding solutions was taking less time because my involvement in that ecosystem increased. Specifically for JAVA, probably still I do not know many stuff, especially I don't have so much idea about the abandoned enterprise technologies, or legacy build tools like Ant etc. but still our applications have good quality and they are working well and my team did not receive any bad feedback from JAVA-expert fellows from the company, it means we adopted well the technology and caught the train. I've to open a new paranthesis about Node.js. If you've never worked with Node.js before and you start in 2016 you're kinda f*cked up. The ecosystem is changing a lot and maybe 70% of the resources you can find over internet are already outdated. You start the day happy and with full batteries and you start to use some frameworks etc. The next day you realize that people already abandoned it. Beside all the disadvantages of Node.js, it's also so annoying and make the adoption process so hard. How such a simple language like Javascript could become so complicated? GO is very cool. Relatively easy language and also very very powerful, it has a high quality community and the resources you can find are very clear. If you are trying to pick between GO and Node.js, go with GO. Your adoption will be much easier.
- jjrumi 10y agoThanks for the tips and insights, man! You were lucky to be in a project willing to rewrite the monolith with different technologies. By the way, looks like you're living in Barcelona as well ;)
- misja111 10y ago+1 I had the same learning moment a couple of years ago. I used to code mainly in Java so when I had to build a frontend, I tried to avoid Javascript and use some Java framework like GWT, Wicket or even Swing instead. At some point I grew tired of the pitfalls and limitations that I kept running into and decided to bite the bullet and just learn Javascript properly. It was a revelation. TL;DR; Don't stubbornly stick to one language, choose the proper language for the job.
- jazzyk 10y agoOr you could have tried Vaadin (no connection to the company other than as a satisfied/impressed user) https://vaadin.com/home https://vaadin.com/home
- ChristianGeek 10y agoSticking to one language is like being a carpenter and only having a hammer in your toolbox.
- imaginenore 10y agoInteresting. I had the opposite experience. I started with C++ , then JavaScript, but ended up doing lots of PHP work. There are just so many PHP opportunities, the demand is still very high, but too many low quality devs, companies are willing to pay a lot for a good PHP dev. My last project was $150/hr, the one before that was $90/hr - both remote.
- kukabynd 10y agoAny advice on increasing rates? 90$ to 150$ is rather drastic.
- imaginenore 10y agoIt's all about finding the clients willing to pay. If you're sure you can find more clients, you can just double the rate with the existing ones. I hear about devs billing $300-500/hr, but that must be some golden enterprise moneys.
- kzisme 10y agoI'm just starting my career as a dev, but my first language in school was C++. At work I use C# - but I hope to keep learning more languages. The main thing I was worried about initially was being stuck with one language my whole career. Anyone else ever feel that way?
- cagataygurturk 10y agoIf you spend extra time after work building personal projects, contributing to open source community etc. you'll not stuck in nothing. Don't let your workplace limit and dictate the technology that you know and use, feel free to develop yourself. Then it'll be very easy to jump between different workplaces until you find the best for you.
- shados 10y agoWith the way the market is, unless you stay at one job forever, its actually hard to stay with the same language... the world changes, opportunities change, your interests change...you'd have to try very hard to stick to one language. Now, on that topic, what's much harder than learning multiple languages, is learning multiple language paradigms. If you have a C++ background, learning C#, Java, Swift, JavaScript, whatever is pretty easy. Learning Haskell, ML, Elm, F#, Clojure, etc...now that will make your mind bend and spin for a bit. Those aren't nearly as common in a work environment, but you can gain a lot from learning at least one. This is kind of similar to how if you're an english speaker, learning another european language isn't nearly as interesting as learning a CJK.
- Spoom 10y agoThis is basically what I'm trying to do now. My entire career has been dominated by PHP thus far (though I've learned many other languages along the way). About a year and a half ago, I saw the writing on the wall and decided to learn something new. I chose Python as I'd heard many good things about the language, and it was more or less entirely new to me (unlike, say, Java or C which I had learned in college). It is so much more pleasant to code in than PHP. And I can't talk about it publicly quite yet, but good things are happening due to my Python abilities.