20 ms·
Ask HN: What cool development languages/tools changed your career?
I've been a web developer for the past 10 years and I've mostly used PHP in my projects. I've also had a chance to code in JavaScript, C#, Delphi. I've had the chance to build large website (>500k users/day) and desktop apps used by millions of users per month, but I always used the technologies that felt comfortable to me. I knew Zend Framework very well, so I used that one to build the services.
My "oh wow" moment was when I discovered Phalcon PHP framework (https://phalconphp.com/en/) about a year ago. I've switched all our projects on this framework and saved thousands of $$ because of the performance impact.
The other thing that made my day was when I discovered Django (https://www.djangoproject.com/). I never knew Python, but I decided to give it a try. The performance is amazing (I always thought that it was slower than PHP - I was wrong) and it seems I can build the projects faster that I ever could using PHP (with any framework).
What were your "wow" moments in your career? What was your best decision to improve your work?
- q_revert 10y agomatplotlib. at times it can be tiresome, given the multitude of ways it's possible to do things, but it's always possible
- bastih 10y agoFor me that was Smalltalk. The environment, the tooling, the purity of the language. Not saying everything is great there, but it's pretty great once you get used to it. Seaside as a completely different approach on how to develop web applications which turns your thinking upside down when you are used to a typical request-response workflow. Django as a godsaint after working on a medium-sized pure-php project without any clear structuring.
- rwmj 10y agoMiranda[1] The language itself is a toy teaching language (and not even freely licensed), but it's so beautifully elegant - like writing mathematics - and it was a way in to ML and Haskell and other functional programming. In fact to do my homework I had to write a Miranda to Haskell translator so I could run the homework exercises on Linux. [1] https://en.wikipedia.org/wiki/Miranda_(programming_language) https://en.wikipedia.org/wiki/Miranda_(programming_language)
- Vanit 10y agoI don't know if it was career changing, but NodeJS blew my mind when at the time our company was using a lot of PHP cron jobs.
- mirceasoaica 10y agoSame thing happened to us. We moved a lot of cron logic to nodejs and we were able to increase speed and reduce hardware costs.
- cel1ne 10y agoTachyons.css: http://tachyons.io/ http://tachyons.io/ Suddenly CSS became fun again and my time designing websites went down by a guessed factor of 5.
- mirceasoaica 10y agoI bookmarked it. Are you using bootstrap / foundation?
- cel1ne 10y agoI've used bootstrap in the past, but not anymore. Tachyons is different, it doesn't give you components but single-purpose classes and a font-relative layouting system: http://tachyons.io/docs/layout/spacing/ http://tachyons.io/docs/layout/spacing/ It takes a while getting used to the names, but after that it's just awesome that you don't have to think about padding, margin and font-size values anymore. Just slap "pa1" or "pa2" there and everything looks pretty.
- kasparsklavins 10y agoDoesn't it lead to inconsistent layout if someone forgets to add it? I am not a designer, but few things irks me more than paddings varying across the same 'components'. From experience, your method is easier to think through, but later on it is more time consuming to modify a layout. pa1 and the like should be treated the same as magic numbers.
- cel1ne 10y agoThat is the point. Padding can't be inconsistent if there are only 7 values to choose from, not 1..7, but powers of two, so 0.125, 0.25, 0.5, 1, 2, 4, 8rem.
- kasparsklavins 10y agoJoe will chooses 0.25, Mary picks with 0.125 while Huan goes with whatever is the default. There will be inconsistency if there is more than one choice available (empty is also a choice). Someone will slip up, it is only inevitable.
- sconxu 10y agoFor me it was when I discovered React-Native. As a one man show in the beginning of our mobile application existence, developing both for Android and IOS at the same time was a blessing.
- cbmueller 10y agoFor me: https://d3js.org/ https://d3js.org/ Once i learned how to use d3 i was like: This is what i want to do.
- animesh 10y ago+1 for d3.js and the sentiment. After about a year of using highcharts, for a specific custom chart project, I was given the opportunity to learn and implement it in d3. I built my first line chart by hand which took me little more than a week and then the custom chart project in about two weeks. It was definitely the most exciting project I have worked on so far. Learning d3.js also made me rethink my 'use javascript as necessary' policy. I also came to appreciate what other charts libraries like highcharts do, but I won't be using those other libraries anytime soon if I can help it.
- cutler 10y agoDjango faster than raw PHP or Phalcon. I find that hard to believe. Are we talking PHP7?
- mirceasoaica 10y agoI didn't do a benchmark. Phalcon is probably faster than Django (by a few miliseconds) but it is a compiled extension and also doesn't have all the functionality that Django has. Django compared to Laravel (which is now probably the most popular PHP framework) is orders of magnitude faster. This is what I meant with Django being faster that PHP (this statement compares a framework with a programming language - not fair)
- cutler 10y agoWithout a benchmark I remain unconvinced. PHP7 performance was shown to have doubled since 5.6 in most cases, including with frameworks like Laravel. Prior to PHP7 it wasn't noticeably slower than Python.
- txprog 10y agoKivy (https://kivy.org https://kivy.org) changed my career too. I make now a living mostly due to this project :)
- tluyben2 10y agoWhat do you make a living with? I like Kivy but my clients would hang me from a tall tree if I would use it for actual projects because it feels very non-native.
- aloisdg 10y agoC# + Visual Studio (2010 back then). I used to code in PSPad (Webdev, Python), then Emacs (C, Shell, Python). When I discovered VS with its debugger and C# with all the sugar, I was changed. I never stop using them since.
- cutler 10y agoClojure and Rich Hickey's sermons from the Mount. Absolutely game-changing.
- cagataygurturk 10y agoMy 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.
- dragonquest 10y agoLearning Lisp, more specifically Scheme. I became curious about it after reading ESR's "How to Become a Hacker". When homoiconicity and other Lisp goodies gradually permeated my brain, the computing world seemed different. I saw every config file differently, trying to see how the lines between config and code blurred. Method abstractions and bottom up design became much easier. I appreciated all those prefix-evaluation assignments in college. I found a new respect for languages with good REPL's. And finally, it opened my eyes to computing history, where I discovered newer is not always better. The elders of old really got many things right.
- shakna 10y agoScheme changed everything for me. I feel sad when I hit special forms in languages, and can't just a macro to change the language to suit the way I want to do it. It made every other language I used feel overly verbose. Sure, Scheme is a bit verbose, but with two or three macros, and a handful of recursive functions, I write about 1/3 of the code I would in another language. Having readers, and parsers exposed makes it so easy to fit the language to the task, rather than bludgeoning the language with a hammer, or rephrasing the question till it almost fits. Random example: You need to allow a user to run half a dozen functions, with a syntax. Normal approach, (after you've argued you shouldn't do this), is to write a parser and evaluator, and hope you didn't expose a security hole like SQL injection by accident. Scheme approach: Generate an empty environment, attach only the necessary functions. Parse and handball to the environment. Eval doesn't have to be evil, especially when the language provides the tools you need to sandbox users.
- Ao7bei3s 10y agoIt's still evil - what if the input program doesn't halt, or allocates too much memory?
- shakna 10y agoYou design the functional building blocks. So a non-halting program would likely use a single stack, and never grow. But more than that, you can use continuations to abort the moment the calculation is too large.
- seochang 10y agoGood job
- seochang 10y agohttp://sanbatdongsanvinhomes.net/vinhomes-cao-xa-la-smart-city/ http://sanbatdongsanvinhomes.net/vinhomes-cao-xa-la-smart-ci...
- webmaven 10y agoZope in 1998 was a complete game-changer.
- tluyben2 10y agoWow that brings back memories. Is that still used/supported?
- jcbrand 10y agoYes, the Plone CMS still runs on Zope2. https://plone.com https://plone.com The ZODB (Zope Object Database) is also still going strong: http://www.zodb.org http://www.zodb.org
- webmaven 10y agoWorth noting here for folks that aren't familiar with Plone that compared to more popular CMS systems like Drupal, Joomla, or Wordpress, Plone's security record is rock solid (in fact, the best security record of any popular Open Source CMS) and is an excellent choice for Intranets and Extranets. ZODB is also the underlying technology of the recently launched ZeroDB, an e2e encrypted NoSQL DB: https://opensource.zerodb.com/ https://opensource.zerodb.com/
- webmaven 10y agoAbsolutely, though I wouldn't choose Zope per-se for a new project. However, for the use cases where Zope shone (complex security requirements, extensible content types nested arbitrarily, etc.), there are a number of Zope-inspired frameworks that are reasonable choices today, such as: http://www.pylonsproject.org/ http://www.pylonsproject.org/ http://www.substanced.net/ http://www.substanced.net/ http://morepath.readthedocs.io/en/latest/ http://morepath.readthedocs.io/en/latest/
- hclivess 10y agoPython
- lmm 10y agoScala, back in 2010. I realised that I didn't have to sacrifice productivity for safety, I could have it all: code that's more concise than Python, but safer than Java. Best thing I ever did was finding a way to try it in my then job (a low-risk standalone tool); over the next couple of years I shifted gradually into doing more and more Scala, and now use it full-time.
- ljw1001 10y ago> more concise than Python, but safer than Java really? or was that supposed to be the other way around? Personally, I can't help thinking of scala as a hipster beard on the face of java.
- lmm 10y agoYes, really. You can write Scala in a very Python-like style, but "_.foo" is much more concise than "lambda x: x.foo", and class declarations are much more concise too ("class Foo(x: Int, y: String)" rather than "class Foo(object): def __init__(self, x, y): self.x = x; self.y = y"). Compared to Java, the inherent safety level of the type system is very similar, but since it's much lighter weight you can do a lot more of it; "newtypes" are much more concise, and for/yield makes it possible to treat errors as values in a lightweight way rather than using the second parallel type system that is Java checked exceptions.
- 59nadir 10y agoOpinions on Scala aside, it should be said that Python isn't the epitome of conciseness that a lot of people think it is. There are more concise languages out there and languages that are as concise as Python that end up offering more elsewhere.
- lmm 10y agoThere are languages that use a denser notation than Python for the same number of syntactic elements, but I don't think many allow you to express the same things in fewer elements. It's famous for looking like pseudocode, which suggests it contains exactly the information that humans need to communicate.
- mherrmann 10y agoPython, hands down. After 10 years of other languages (mostly Java) it opened my eyes to how simple programming can be.
- dvcrn 10y agoGo recently, and Clojure previously. Clojure forced me to think in a radical different way than I was used to. I started with massive functions that easily became unreadable, and slowly adapted purity and wrote side-effect free code. The paradigm shift affected me so much that even in other languages, I started writing pure code and use function composition more and more often. Coming from an imperative background, functional programming was a bit difficult at first to wrap my head around, but now I love it! (Eventually I even ditched JavaScript for ClojureScript). Go recently because it was my first truly compiled, statically typed language after almost 7 years of working (I know, right?). My entire career consisted of Python, PHP, JS, Ruby - you get the idea. Go changed that. On top of that, it is a very biased language that forces it's coding standards on you. Not all are good but you learn a lot about the design decisions behind them and why things work in the way they do. Plus after working with it for a while, even other compiled, statically typed languages like C++ became a good chunk easier. And as a extra, very recently: Elixir. Loving functional language, Elixir taught me erlangs genservers and process manage and oh boy! I don't understand why that's not the default tool we use for webservers all the time. It just seems like a natural fit vs other languages. Thanks to supervision trees, it is very easy to write fault tolerant, highly concurrent applications that span multiple servers, without the need for extra tools. For example: You can spin subprocesses up at any point, communicate with them, kill them, let them crash without fearing that anything else in your application is affected. When previously you needed a queue server, a cache server, background workers, service crash recovery, long running requests processing and more to build a concurrent system, Elixir makes it very easy to implement these things extremely easily as subprocessed without the need to leave your application and grab tool X (upstart/cron/rabbitmq). Worried that something will crash? Just let it crash and the supervisor restarts it. Worried that the supervisor crashes? Then the supervisor of the supervisor restarts the supervisor. Your background worker process is on server 2 and you want to dispatch something from server 1 from the same mesh? Just use it's PID and let BEAM handle the rest. Same for Queues, Stores, Caches or anything really. I am highly convinced that learning Elixir is something every web engineer should learn.
- farm_code 10y agoI am decade old Java dev, but Elixir changed the way I design web apps.
- chubot 10y agoLearning Python (in 2003). I use 5 different languages regularly and I've tried a half dozen more. I've worked in quite a few parts of the industry. Python seems to be the bread and butter -- it gets things done quickly and reliably in so many areas.
- 131hn 10y agoPHP developper since +10 years, I learned little by little client side Js through Mootools (object programming 5 y ago). I started nodejs 0.10 2y ago and got a serius wow when i realised node 4 & generators & tj/co could efficiently replace line-per-line how i used to work in PHP (async-co, pg-co) with so much more power (browserify, mocha, istanbul, npm, ...). I guess today the switch is complete for me
- coygui 10y agoNobody mentions RUST? I thought it,s popular here...
- Tomte 10y agoRust is extremely new, with way fewer people who have tried it. So there wasn't much opportunity to change someone's career (both on the time and the people axis). Additionally, Rust is a very well-engineered language, but it has few ground-breaking attributes. The borrow checker has never appeared in a non-esoteric language before, I guess. Most of the other goodies could have blown people's minds long before in another language.
- dochtman 10y agoI think the borrow checker is actually pretty mind-blowing. In general, I'd say that the combination of modern language features with a real systems target (i.e. low-level, no GC) certainly has the potential to be game changing, in the sense of making it that much less scary to write things in a systems language.
- grayrest 10y agoRust has been great. Not so much for the language itself but rather as a vehicle to explore the layers under the language runtimes I've been using for most of my career. It hasn't really changed my perspective on programming. I haven't been doing it long enough to have it transform my career. As an answer to the OP, it's not a particularly good one for me.
- fsloth 10y agoThe biggest impacts on my professional thinking were caused by learning Ocaml and F#. Those impacted greatly the way I approach systems design and programming in general. The second biggest impact was probably learning Scheme and writing a scheme interpreter.
- synthmeat 10y agoCombo of vim+tmux+tmuxinator. I work on many projects with many different modules, languages, databases... What this enables me is to be one single command and a seconds away from completely switching context while still maintaining basically identical environment. It encourages experimentation because you're language/project agnostic and it reduces friction to getting started which is a great boon for productivity.
- xamlhacker 10y agoOcaml, F# for programming languages and ZeroMQ in terms of libraries. And recently HTC Vive in terms of hardware.
- steinwaywhw 10y agoAre you using F# it at work?
- CalRobert 10y agoIn a sense, Javascript. But more importantly, when I read Javascript: The Good Parts by Douglas Crockford. It was my introduction (though I didn't realize it) to functional programming, closures, and thinking much more about scope. I went from thinking of JS as a pile of junk to a language with remarkable flexibility. That doesn't mean I do everything in JS, but I find I like the language a lot more than most of my peers.
- 6DM 10y agoThat book definitely gave me a leg up on JavaScript, but I feel the real "ah ha!" moment came with this book, "You don't know JS, Scope and Closures". I can't recommend this book enough. https://github.com/getify/You-Dont-Know-JS/tree/master/scope%20%26%20closures https://github.com/getify/You-Dont-Know-JS/tree/master/scope...
- FascinatedBox 10y agoWhen I decided to build my own programming language. I had a handful of smaller projects under my belt beforehand. Before that, I had never thought much about what goes into the design of a language, and how important that decisions are (as well as the interactions different parts can have).
- mping 10y agoClojure with emacs+cider. The ability to interact with a "living" system in a homoiconic language where functional programming allows you to do some neat stuff was mindblowing. Specially because the LISP guys probably have been doing this for ages. Think React hot reload on steroids, applied to the whole app and with an interactive IDE where you can eval any expression and get immediate feedback, even if the expression interacts with a db (requiring a db connection) or whatever.
- welanes 10y agoKnowledge-wise: Github. When I began learning Javascript I'd read through the source code of any libraries that appeared to do magic and figure out what the trick was. Very helpful in making things 'click'. Tool-wise: Vue.js (a single file for code, templates and style is refreshing), Now by zeit.co and Sublime Text are my three hombres. And hot-reloading, for all those hours it saves me....praise be to Websockets.
- k__ 10y agoYes, GitHub is now my go-to resource when I got problems (before it was Stackoverflow) 1. Google the problem If Google don't has answers. 2. Look into the source on GitHub 2. becomes 1. if I used the lib for a longer time or I know it's really small. I think I became a better developer that way, because I now see more often how other devs do things (code- and process-wise)
- hacker_9 10y agoI agree with GitHub, everyone here is talking about programming languages, but the ability to search through millions of projects and basically get a 'head start' on any idea you come up with is just brilliant. The other day I needed a Bezier curve editor and GitHub gave me a 100 to choose from! I just took the one with the most features and started adding to it from there - saved perhaps a week of effort right off the bat.
- kleiba 10y agoEmacs. I remember finishing college in the late 90s and coming across Emacs (actually, XEmacs back then) for the first time. What a weird editor, how could anyone even want use this voluntarily? Until some coworkers at the place I worked back then showed me some tricks. The touch of enlightenment hasn't stopped ever since and probably never will.
- jasonm23 10y agoTestify! Emacs is so mysterious, some people actually think it's a Text Editor. It's like saying Android is a Phone.
- rpdillon 10y agoIndeed. Starting using Emacs in '97 when I was still in school, but the mix of editor and programmable lisp environment changed the way I thought about computing (coming from Pascal/Java). Emacs made it so easy for me to implement small improvements to my work environment, so it allowed my curiosity to overpower my fear of breaking things, and that changed the way I thought about computing in general.
- rakanalh 10y agoEmacs is now the thing that i am most passionate about... even more than programming languages themselves. I don't imagine getting back to anything else. Especially when i have to run tests using IntellJ for Java, i can't wait until i get back to my lovely Emacs screen!
- pvdebbe 10y agoClojure, or maybe all these related Rich Hickey talks transformed my attitude towards systems programming. Before that, the Unix philosophy. But perhaps I can't say that the Unix philosophy changed my career because I adopted it very early in my programming and way before any career established. Sadly, Clojure has left me in a position where Python + Django in my day work disgusts me with its mutability and unnecessary OO semantics, but I don't have much choices in my area. Ignorance can be a bliss sometimes!
- TurboHaskal 10y agoClojure has mutability and a lot of its idiomatic abstractions are object oriented in nature.
- pvdebbe 10y agoBut exactly. The so-called OO languages are worse at the key tenets of OO paradigm: polymorphism and message passing. I didn't even attempt to clarify that in my original post so forgive me for that.
- JulianWasTaken 10y agoI'm a sizable clojure fan (and a long time Python developer) but I'm not sure where you'd say Python fails at polymorphism or message passing too strongly. Interfaces/traits maybe (z.i is quite crusty) but it's just as good at polymorphism. Mutability though yes -- hope you're aware of https://pyrsistent.readthedocs.io/en/latest/ https://pyrsistent.readthedocs.io/en/latest/ I use it in every project I write.
- pvdebbe 10y agoYes, I've been hasty to write sloppily today. One thing that is not perfect is the way Python treats classes; the mechanism is very much like in Java or C#. Multiple dispatch requires some handiwork, although it's not half bad in a highly dynamic (so many things are first class in Python!) language. It kinda isn't Python's fault but there you go when trying to introduce concepts to fellow developers not in the most usual python guidebooks. And a part of the problem is Django, which is nice and all, but entails some highly unpythonic design choices and people around here take Django's way as gospel. Pyrsistent is great. But I'd rather Python 4000 or something would go the way of scala or swift where you have immutable values by default and mutable values only when you specify it.
- brooklyndude 10y agoFirebase. AWS. S3.
- TurboHaskal 10y agoMade a lot of money with Pascal, then Perl. Common Lisp and Haskell turned me into a grumpy, unemployable mess. Terrible ROI. I went 180 and now I'm starting to appreciate (and making money with) Go.
- willismichael 10y agoCould you clarify what you mean by "grumpy, unemployable mess"? I'm assuming that you mean that you got a glimpse of what software development could be like, but didn't find any traction in the industry?
- doweig 10y agoElasticsearch + Kibana. First it was a weekend project, then a full project at work, now there is a full team working on it and my title has changed to "Data analyst". All in 6 months.
- desarun 10y agoupday?
- belvoran 10y agoMy wow moment was when I first found out something totally different than my comfort zone. It was SQL then. But it was 15 years ago. Another wow moment was Perl, and its just three data types. Then lisp. Currently I think that the most mind changing languages for me were SQL, and C++. I don't know why, I just love Postgres, and I love the C++ speed. However for the last 15 years I've been commercially programming in C, C++, Java, Javascript, Python, Ruby, Perl, Delphi, PHP, SQL. What I like is different: I like Python, Postgres, SQL, Java, and I'm learning currently is the newest C++, and a little bit of Rust. I'm not sure why I still have problems with understanding Haskell. However when I'm looking for a remote job now, all that doesn't matter. I get some strange interviews with 10 minute algorithm tasks (if you don't remember the implementation of this task, which you have never seen before, you have no chance to write it). Or even recruiters not understanding the answers to technical questions they ask. And most of the job offers I get require 10 years of writing in one language, so I'm wondering if I did good learning all those different things.
- k__ 10y agoComing from PHP (did it from 2006-2011) JavaScript blew my mind. Most of the time I saw it as a tool to use, when CSS wasn't powerfull enough. After using NodeJS I was blewn away. NPM alone was a killer feature PHP was missing. Functions as objects that can be passed around and closures introduced me to functional programming. I really thought PHP would go downhill after I saw the whole JavaScript hype and switched 100% away from PHP. Many web-companies here in Germany were just doing Java or PHP at that time (before 2010) and if you didn't know about one of those two languages you were screwed, but now I do 100% JavaScript development AND get better projects than with PHP. But I have to admit Facebook pumping money into PHP helped tremendously to make it better. At the moment I have smaller WOW-moments with TypeScript, RxJS and NixOS. Smaller basically because I don't have work-related projects at the moment to use them, but they seem to fix a few pain points I had with JavaScript, React/Redux and Vagrant. (undefineds everywhere, realtime-data stream control and sane dependency management)
- gotofritz 10y agoWell I go way back, for me the first time it was PERL for web programming, that lovely write-only language. The biggest one though was Javascript when Netscape first invented it. Suddenly FE development went from HTML without even CSS to actual programming, and one could see the potential of the platform. Then ActionScript 2, which was the short lived phase of Flash where it evolved from a vector toy for making spinning logos into a JS-like language (they were in the ECMA committee and everything), but you could do all sort of crazy animation and sound too. Sadly ActionScript 3 and Flex ruined it all for me, turning Flash into Java. But it was fun while it lasted. Luckily by then JS was reborn thanks to jQuery et al, and the next "wow" moment were all the APIs known collectively as "HTML 5" - from WebAudio to WebSockets to Canvas etc. And finally ES6 / WebPack and React / Flux, finally we could break away from the MVC model that never sat well within a browser environment, and with a modern language to boost.
- reacweb 10y agoPerl in 1998. When the purpose is not the program, but the result of the execution of the program, it is important to code fast. With perl, you code like you think. Autovivification keeps your code concise and easy to write. The syntax invites you to check for errors.
- bocata_chorizo 10y agoFor me it was JavaScript. I learned C and C++ in university. It was all either procedural or object-oriented. JavaScript made things a lot simpler, especially first class functions and higher order functions. It delighted me that you can just pass the function like it's a variable instead of messing with pointers. It's also delightful that a normal function can return an object. No constructors, instantiation, hierarchies, complications. Just spit out the object. It's simple! Lodash's "chain" was my gateway into functional programming. I am avoiding getting too deep into that because it feels kinda cultish the way adherents claim its superiority, but it has nevertheless impacted the way I approach problems.
- petercooper 10y agoRuby and Rails in 2004. I'd been a Perl developer for 8 years till that point but had basically given up on building anything substantial with it and was transitioning to being a freelance writer. Ruby and Rails got me straight back onto the development track and had a huge influence over my successes since.
- sleight42 10y ago2006 for me after 9 years of Java and a few of C, C++, and a smattering of PERL and Python. Rails, and then Ruby, were such a breath of fresh air after the verbose hell of Java, J2EE, and Spring.
- ilaksh 10y agoWow moment for me was finding out about Nim which proved once-and-for-all for me that the idea of performance vs. code clarity/convenience having to be a trade-off was a fallacy.
- nimmer 10y agoSame here. We've been wrong about the idea of trade-off all this time.
- pheon 10y agoVerilog its like going from 2D -> 4D And thats for real complex projects, not making LED`s blnik.
- misterioss 10y agoIntellij IDEA <3
- AnimalMuppet 10y agoSeconded. It was like being psychic - the code just appeared on the screen. Amazingly fast and productive. Before that (way before), telnet and ftp. Being able to deliver a new executable to personnel at a trade show floor from 500 miles away was mind-blowing in the early 90s...
- ceder 10y agoexpect, TCL and DejaGNU. My first consultancy work assignment: "Paul had to go on an extended vacation. Nobody understands his code, but he says it is almost done. Finish it up, please!" Thanks to DejaGnu and expect, I could write an extensive testsuite, get good test coverage, fix the few missing pieces of code, and deliver a bugfree product in less than the allotted time. (Of course, I'm not sure it was bugfree, but nobody found a single bug in the next couple of years.) Then Python, where I understood that a language doesn't have to be as toylike as TCL to be extensible and embeddable.
- usgroup 10y agoPicolisp because: Lisp Prolog Tightly coupled, distributed DB queried with prolog Tightly coupled UI engine Everything under emacs
- alexmorenodev 10y agoShell made me a lot more agile to do various simple tasks which would take me time for repetition. Learn a text editor deeply (Sublime) made me extremely faster than all my colleagues. I, as an addicted to efficiency, found my job a lot funnier everytime I learn something that makes my common task less time consuming.
- valw 10y agoAfter about 8 years of Java only, JavaScript. Then Clojure.
- pmontra 10y agoRails circa 2006. I could develop a full web app in days or weeks instead of weeks or months with Java.
- antaviana 10y ago- Turbo Pascal when I was programming in RPG II - Delphi when I was programming in Turbo Pascal - AWS
- kamalkishor1991 10y agoTrying out competitive programming really improved my coding ability in any programming language. Recently I tried out Ruby on Rails which blows my mind and changed my view about frameworks(It is really 10 times faster then java to create a web app). Previously I had written web apps in java and node js.
- col_rad 10y agoI started as a backend Java engineer for a large ISP. I loved it, I didn't what to do anything else. When I joined a consulting agency they put me in a company that had pretty good backend engineers. What they completely lacked was the frontend part. The product developer and the customers demanded a more dynamic interface but none of tech seemed to care. All said 'it's not possible'. So I started learning JavaScript, learned AngularJS (which was brand new at that time and fitted great in the corporate/enterprise setting), built a couple of sideprojects and then started evangelizing Product and Dev. I was allowed to improve a first Product, which was a great success. Then every product developer wanted webapps. So I started teaching developers at the company and the consulting agency. This taught me: Find the tool that does the job. Even if you think the tool looks stupid.
- ivanceras 10y agoFrom Php to Java and now Rust. Though rust is not prominent yet, I'm sure I will have a lot of fun when it would go mainstream.
- scardine 10y agoPython saved my but 10 years ago when I was transitioning from operations to be a full time software developer. Back then I made the wrong technology choice for a project (OpenLazlo, a discontinued RIA platform on the frontend and PHP at the backend) and the schedule was slipping fast. Then I tried Django and it really stands for the motto "The web framework for perfectionists with deadlines". I'm yet to find a language that allows fast prototyping while being readable six months after you wrote it - I used to love Perl, it is on pair with Python on productivity and blows it out of the water in performance, but I can't say it is easy to maintain.
- babayega2 10y ago+10 : quick prototyping! I always do develop quickly a Django project (1 day) with the Django Import-export module [0] so that I can show to the client the data he wants in an Excel file or else... And most of my developers friends (php...) are blown away how I manage to do that ( i.e a perfectly working admin, nice landing page and complex import-export features). And with Python, you can even show your code to the non tech client and most of the time I've found that he really "guess" the Python code more than a Js code. I'm always delighted when a client makes suggestions on my python code. [0]: https://django-import-export.readthedocs.io/en/latest/ https://django-import-export.readthedocs.io/en/latest/
- mountaineer22 10y agoI know of a successful SaaS that is currently using Perl for data cleaning/importing.
- leblancfg 10y agoI guess that's not tooo surprising, given the backronym "Practical Extraction and Reporting Language".
- xapata 10y agoPython can beat Perl performance in many cases. I'm not sure if Django is the right choice for machine efficiency. It is a good choice for low total cost of ownership.
- contingencies 10y agoTools: Linux. IP. IRC. SMTP. HTTP. Wikipedia. SQL. RCS/VCS. Travel. 'Wow' moments: Working in a small publicly listed company early in my career showed me how inefficient and corrupt the stock market is, gave me a brief general education in business, and showed me a lot about the nature of international business. Travel showed me how there was an alternative to decades of 9-5 work, that I had nothing to fear from failure, and that I could actually afford to start my own companies. Starting my first company from concept to break-even revenue was a great learning curve. Best decision: Moving to China. It gave me the opportunity to start a company and learn loads very quickly.
- kaspermarstal 10y agoSimpleITK. Hands down the best medical image processing library ever.
- wastedhours 10y agoMoving from PHP to Rails in 08/09. First dabble with MVC and it really changed the game for me - and the gem ecosystem made things (at least feel...) a lot less hacky than taking random scripts from Google.
- dschiptsov 10y agoMIT Scheme, Common Lisp, SML, Haskell, Erlang. Scheme - it's so concise, clean, Wow! CL - LOOPing macros, SETF, OOP is just a bunch of slots and macros. Wow! SML, Haskell - static typing done right. Wow! Erlang - Wow! Scala - concepts from SML + design choices from Erlang. Java, JavaScript - Packers, packers everywhere...
- kolanos 10y agoWow.
- galfarragem 10y agoIt would be cool if HN had kind of auto TLDR tool. The sentiment seems to be: PHP, JAVA -> RAILS, PYTHON, JS PERL (1998) LISPS, ML family, SCALA, GO, RUST EMACS GITHUB
- SuperKlaus 10y agoAnd Clojure.
- votr 10y agoClojure. Before learning Clojure, I didn't even have a career. I just wanted to get into software development. But at the time, all I knew was a bit of Python. And while I could've learned Java, I figured that being yet another Java programmer in the marketplace, but with no experience and a liberal arts degree, was probably going to get me nowhere. So I decided I had to learn something emerging. Something where there was nascent demand but not much supply. I chose Clojure because it looked weird, and all these bright people were talking about how great it is. I invested a couple of months learning it deeply, open-sourcing my side projects, and blogging about it. I also spent that time learning non-programming fundamentals. When I felt I was ready, I started reaching out to people in the community and companies on "Who's Hiring" threads mentioning Clojure. Within a couple of months, I landed my first full-time programming gig at an investment bank. I know that if it wasn't for Clojure, I wouldn't be here today.
- heyts 10y agoI'm very interested in learning Clojure. Would you care to share more of your experience learning the language in terms of learning curve, useful libraries or just general tips. I'm sure that would benefit the community at large.
- votr 10y agoI approached learning Clojure the way I approach learning everything else. I survey the resources available, then pick the two best books. Ideally, I want them to come at it from different perspectives. e.g. one may place an emphasis on doing stuff with Clojure while another may be more about functional programming. At the time, they were: https://www.amazon.com/Clojure-Programming-Chas-Emerick-ebook/dp/B007Q4T040/ref=sr_1_1?s=books&ie=UTF8&qid=1477404159&sr=1-1&keywords=clojure+programming https://www.amazon.com/Clojure-Programming-Chas-Emerick-eboo... https://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412/ref=sr_1_5?s=books&ie=UTF8&qid=1477404159&sr=1-5&keywords=clojure+programming https://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/16172914... I then wrote a data processing app in Clojure; consuming financial data and finding patterns in it. My suggestions are: 1) If this is your first time learning a functionally-oriented language, clear your mind from any kind of assumptions picked up from other languages. 2) Get a handle on the core tenets of functional programming: immutability, purity, composition, and functions as objects. If you know Javascript, then a lot of this stuff may already be familiar to you. JS is underrated in that department imo. 3) To me, writing programs with Clojure is akin to playing with Lego. You write your base functions, then higher-level functions which use those base functions, and so on. Functions all the way down. 4) Write something with it; it'll force you to decompose your program and think functionally. Clojure is a simple, opinionated language. I don't think you'll have a hard time picking it up at all. The hard part will be to think in a manner amenable to it. These days, I think Clojurescript has overtaken Clojure in terms of traction, so if you're into webdev, then CJS would be a natural next step.
- dsiegel2275 10y agoFor web development: React. I have been developing web applications on and off throughout my now 20 year career - all the way back when Applets were all the rage. Spent time with a host of technologies and approaches: JSP/Servlets, JSF, Struts, GWT, Backbone. React has been hands down the most productive technology I've used in web space. I'm so productive using it that I now enjoy doing front-end development again. I've recently moved away from ES6 via Babel to using TypeScript with React and have been even more productive as I'm now catching more bugs either in the editor or at 'compile' time. I'm now looking at Elm.
- Impl0x 10y agoWhat have been your impressions with Elm so far? I started playing with it recently since I enjoy Haskell but I'm coming from it with no prior web experience so it's hard for me to gauge it in most aspects.
- grayrest 10y agoDifferent poster, but I have an opinion. I think that if you're going to do React/Redux, your life would be easier in Elm. I'm a full time Clojure/Clojurescript dev and from my perspective, the main thing Elm is lacking is Protocols (in Clojure/Swift, Traits in Rust). I know Evan has been pushing back on it because it adds complexity to learning the language and you can get by without them, but I miss them. I could quibble about other things but there's nothing I strongly dislike. From an adoption perspective, I think a focus on tooling would help a lot. There was a talk at elm-conf where a refactoring suite was written as a chat bot. Ditching the chat bot part and building a language server [1] would make it much easier to pitch the language. [1] https://github.com/Microsoft/language-server-protocol https://github.com/Microsoft/language-server-protocol For a non-web developer looking to transition into web dev, the main weakness of Elm is that the community is small so you basically have to build your components yourself. This tends to be challenging for experienced programmers coming from other languages because CSS has no abstractive power at all and the traditional layout techniques are incredibly unintuitive. You'll probably have the most success using flexbox everywhere. The community is friendly and I think Evan does a pretty good job leading it. I've pushed a number of younger developers at js meetups to pick it up and they've reported back with positive impressions. Of the compile to js langauges I know, I'd pick Elm as the most likely to succeed. Overall, I like Elm and am happy with it's progress. I don't think it's ready for unqualified adoption, as you'll be doing a lot of library building you wouldn't need in more mature ecosystems and I'm not completely confident it's on the path to great success. I wouldn't push the language in a workplace at this point. By comparison, I would push Rust. You're in largely the same position in both languages in terms of writing libraries but I think Rust has hit critical mass.
- DougWebb 10y agoI'd been coding on the side from 12 years old right up through grad school; many different languages at many different levels. Assembly languages, BASIC, Pascal, C, C++, Cobol, Forth, Prolog, Java, etc. Through it all I thought I'd eventually go into robotics where I'd primarily be a Mechanical Engineer building things, and writing software on the side for tools and controlling my creations. Then a friend offered me a software development job that I couldn't turn down, developing in a language I hadn't used before: Perl. It changed my life. I could never handle large projects before because it was too much code and too much hassle to manage it all, but Perl is so good at letting me express what I want the computer to do that wasn't a problem anymore. Perl allowed me to make software development my career, instead of just one of the tasks I did as part of my career. Later on, I had a similar experience with jQuery. I had been using Javascript since it first came out, but it was such a hassle to deal with the DOM and cross-browser issues that it was never worthwhile to do anything important with Javascript. The maintenance cost was too high. So we added little nice-to-have enhancements to our webapp, but nothing that had to work. Then jQuery came along and changed everything. It was suddenly much cheaper to develop complex and required functionality in javascript, and client-side web development became a big part of the platform.
- Kaizyn 10y agoHave you heard the joke yet about Perl being a write-only language? Have a look at Python, Ruby or Perl6 for your next change of goto language. One of those should still fit your thinking style and should ease some of the pain points of working with Perl.
- DougWebb 10y agoThat joke's not true at all, if you write your code well. It comes from many people writing really bad code and sharing it widely through cgi script archives. Lots of stuff on CPAN was bad too. And of course there was a lot of intentionally-bad code too. These days I'm writing C# web apps, with plenty of client-side javascript. My problems dealing with large complex codebases went away years ago; Perl helped me to discover that I could do this as a career, but it hasn't been a crutch.
- carrigan 10y agoArduino. I went to school for Electrical Engineering and learned programming for small embedded computers using assembly. While assembly can be fun as an optimization puzzle, it takes a very long time to code even a simple project. Additionally, these computers can have 1000+ page datasheets that you need to comb through in order to set their peripherals up. Arduino takes care of setting up the peripherals, gives easy to use functions to control the chip, and hands over the keys to a fully ready C++ build chain. When I finished my first project I was hooked and tried to use them everywhere I could for prototyping, and always aimed to make my hardware libraries as easy to use as Arduino.
- ChristianGeek 10y agoEvery software developer owes it to themselves to pick up an Arduino and experience the sheer joy of writing simple software to control basic hardware (or more advanced software to control more advanced hardware once you get hooked).
- caleblloyd 10y agoI have just started using C# and .NET Core after years of dismissing it when it was only available on Windows. Now it is open source and cross platform! I come from a PHP background but have been writing smaller performance critical code in Go lately. C# is a pleasure to work with. It's got generics and good support for asynchronous I/O. .NET Core is also very good, it's dead simple to spin up an API serving backend using .NET MVC. Lastly, I think the community is great. I have jumped into a couple different projects - one is a MySQL driver and another is a MySQL implementation of the EntityFramework ORM. I was able to contribute after just a few weeks of working with C#. Microsoft seems very dedicated to continually improving the language as they develop in the open on GitHub and take user feedback.
- sundvor 10y agoYeah, got to love how Microsoft are embracing the open source - as well as the solid (pardon the pun) development methodologies and patterns that surround it. I have been working with Core all year, in fact started learning C# on Core RCs (which was a bit interesting..), but it was all on Windows. Finally the other day I just spun up a Ubuntu VM in Azure and got a sample Core app from my Win10 environment at home published up and running in a few hours, as step 1 on a small idea I have. This coming from never having used Azure VMs before, and I was rusty with the SSHing / Linux as well. Not a lot of my friends would dig it, but as a relatively old timer I thought it was way cool. Microsoft code, running on Linux - definitely made my day.
- staticelf 10y agoMe too. I also came from a php background and I love the new .NET Core, Typescript and so forth. Funny is that I've always been dismissing .NET for so long and been a heavy Linux user. I never thought the day would come where I prefer .NET and Azure. Although, professionally I basically only do frontend work or node work. So javascript is pretty much what brings in the cash each month nowadays.
- caleblloyd 10y ago> I never thought the day would come where I prefer .NET Right!? Half my co-workers still think I'm joking when I say C# or .NET I still strictly develop C# on Linux, using JetBrains Project Rider and VS Code. I run production apps on Google Container Engine. I'll test in Windows for cross platform apps using Visual Studio Community Edition from time to time. Never messed with Azure but I think they have some nice integrations with Visual Studio.
- lkleen 10y agofor C++ development: The usage of tracing tools like windows performance analyzer or instruments. windows crash/freeze dump analyzer. malloc guard or application verifier to find memory acess violations. Theese tools are often very helpful and speeds up our work to find the culprits for the really hard cases.
- lkleen 10y agofor C++ development: The usage of tracing tools like windows performance analyzer or instruments. windows crash/freeze dump analyzer. malloc guard or application verifier to find memory acess violations. Theese tools are often very helpful and speeds up our work to find the culprits for the really hard cases.
- Hyperized 10y agoAnsible. and maybe Puppet a bit. They allowed me to scale with my career. Going from a few hand-managed servers to 100k+ environments at ease.
- pryelluw 10y agoThis is such a great question. In my experience: - Django has been simply amazing to work with. It is the framework with which I measure other frameworks. Its far for perfect, but it has the features I need. It can also be customized to most requirements. Sure, it has downsides, but they don't get in the way as badly as other frameworks. - Angular changed my opinion about front end development. My experience had been with Jquery heavy websites. Never with something better engineered from the start. Angular has issues that I'm very aware of, but it opened up my eyes to the world of better javascript programming. - React took what I leatned from Angular and just made it easy to use. Which was my #1 issue with Angular. It was too bloated. React is so much simpler. - Visual Studio Code made me open up to newer text editors and IDEs. I've mostly been a Vim user. But VSC has proven to be very nice to use. I have not abandoned Vim, but am doing more JS dev work on VSC. - The Django rest framework is super amazing. It just works so well with Django and allows me to build great APIs without a lot of overhead. I wish there was something like it for Java.
- macca321 10y agoBuilding (certain) applications using in-memory persistent objects instead of using a stateless web app + database server, somewhat similar to a multiplayer game. Made programming fun again. Don't seem to get to use it at client sites as it's too extreme an approach :(
- Kexoth 10y agoHave you tried Elixir? Please have a look at the following presentation. I was also interested in the same, watched this presentation[0] & many other, made some prototypes by myself & I'm still amazed by OTP/Elixir & Phoenix later on. [0] - https://vimeo.com/171317253 https://vimeo.com/171317253
- macca321 10y agoI'll take a look when I get a chance - from a glance at the Phoenix docs looks it like a railsy MVC framework though? The pattern I'm talking about is dicussed here: https://news.ycombinator.com/item?id=2945513 https://news.ycombinator.com/item?id=2945513
- davidspiess 10y agoReact & redux. Through redux i came in touch with functional programming. During the first week learning it, i came home from work exhausted and with a headache but eventually it clicked and i was amazed how productive and bugfree further development was. I began to adapt the functional style in my PHP projects and started using real functional programming languages (Elixir and F#) to take my understanding even further. Still plenty to learn.
- drittich 10y agoGit. I had many years of experience with various source controls systems, but it wasn't until a few months with Git that I realized it took away so much of the friction I had been living with in terms of being able to do fast context switches, experimental branches, recovery from bad mistakes, and sheer performance of working with very large repos. It is a tool I rely on and admire almost every day of my life.
- reustle 10y agoA lot of these answers give technical reasons, but career wise it is a different answer for me. JavaScript. Once I got a solid understanding, the ability to do so much more visually and interactively on our own projects, bookmarklets and chrome extensions for sales / business department, etc, that was when they really started to notice my value at my first tech job. They felt like I was a wizard, able to modify the features of almost any existing web tool they used.
- ergo14 10y agoFor me it was Pyramid+SqlAlchemy - For me probably best python web framework if you want something more than CMS. On frontend I think Polymer and Web Components are a game changer - very low entry barrier and they feel like a proper way to do web development where everything is encapsulated.
- RodgerTheGreat 10y agoAbout 2 years ago I discovered a programming language called K. It's a very unusual-looking, extremely terse language in the APL family. It just "clicked" for me. I enjoy the ability to experiment with different algorithms and approaches in a few keystrokes, and learning to think in a "vector-oriented" fashion has opened my eyes to much more elegant formulations of old problems. There aren't many extensive tutorial materials available for K, so when I decided to learn it I pored over the reference manual carefully and wrote an interpreter to try to match the spec. I built programming environments on top of my interpreter which are probably only suitable for my own use, but they make me deliriously happy to use. I made connections with both seasoned K programmers and other enthusiasts through my open-source projects with the language. Eventually I was approached with a few offers, and I am now gainfully employed by a firm which uses K more or less exclusively for backend work. If you find a niche that makes you happy, and you're willing to invest the time to develop an unusual area of expertise, a career can follow naturally.
- clappski 10y agoIsn't K related to Q (and KDB)? We have one guy at work responsible for all of our KDB stuff because no one wants to learn either!
- RodgerTheGreat 10y agoQ and KDB(+) are written on top of K. The version of K which is currently commercially available from Kx Systems is K4, and it comes "hidden" within the kdb+ executable. The company I presently work for uses a customized build of K3. My interpreter targets K5/K6, the bleeding-edge release. edit: If you can get past your initial reaction to the unfamiliarity of the syntax, consider giving K an honest shot. You might find you like it.
- jnbiche 10y agoAt the risk of spamming the same question to everyone who comments here with a less common language, are you employed remotely? Someone asked a question on Ask HN a few days back about whether learning a less common language made remote work more feasible. Do you get many remote opportunities as a known K programmer?
- vsipuli 10y agoLinux and Emacs, circa 1997.
- zubairq 10y agoRuby, then Erlang, but most of all, Clojure!
- fatboy10174 10y agoI Started with vb.net, and then quickly tranisitioned to C# at the advice of a manager about 12 years ago, naturally incorporating javascript and HTML and i've never looked back since. I had an 'wow' type of moment when i discovered MVVM (Knockout) and decided to bite the bullet and actually learn jquery.
- alex4Zero 10y agoI would say not tools, but Agile mindset
- internobody 10y agoIf not for Ruby/Ruby on Rails I'd still be doing support in Windows land, and not building fun and cool anything.
- willthames 10y agoAnsible - I first discovered it from a comment here, thought 'who needs a new config management tool' then realised Michael Dehaan had also written cobbler so thought it was worth a crack. Since then my python skills have improved through reading and improving the ansible code base, I've written ansible-lint, ansible-inventory-grapher and ansible-review, and I've been on two long distance conference trips as a result.
- IndianAstronaut 10y agoR. Until I learned R, I really never was able to do statistics and machine learning on the datasets I was given. Python just didn't cut it since it had minimal statistics compared to R and scikit learn wasn't able to fully handle a lot of the missing data problems I had.
- knz 10y agoPostGIS. I'd messed with some of the ESRI server products and knew basic SQL but discovering PostGIS was a paradigm shift in terms of being able to easily and efficiently run more advanced spatial analysis in a database.
- xophishox 10y agoTerraform and Ansible so far have been insanely helpful additions to my infrastructure management tools. Actually, they are my only tools almost now.
- gaius 10y agoIt's far from cool now of course but Java, in 1995.
- Beltiras 10y agoFunctions as first class citizens in Python. I knew that you could pass function pointers as parameters in C but there was something so foreign and new about it.
- maxencecornet 10y agoMeteor made me way productive
- JackFr 10y agoI'm a Scala dev now, but when I was a Java dev, I went and learned Python, then Ruby and Rails. Never left Java (well until I got into Scala) but learning those absolutely changed the way I wrote code, and with respect to web dev finally gave a clear picture that was near impossible to see in the Java ecosystem. (Also using IntelliJ IDEA for the first time in 2002 - opened my eyes as to what was possible for an IDE, and what was possible to do with Java.)
- tzhenghao 10y agoVim. I was first introduced to this text editor back in college. It has super weird navigation rules and editing modes that would easily deter many beginners. 70-80% of my course mates gave up on it and chose something else that worked more like a normal text editor such as Sublime/Atom. It took me several months to develop that muscle memory to increase my productivity. Today, I can log in remotely to my AWS instance, edit a few files and do it all without leaving the terminal. I hear similar benefits on the Emacs camp too. The steep learning curve was well worth it. I don't think I've shipped any source file without opening/editing it on Vim before.
- return0 10y agoI don't think vi has a steep learning curve. There is very little "curve" after the first day. It does have a very awkward first moment (how do i get out of this? esc-colon-wq wtf is this?). Once you realize the difference of command mode, you 're done; it's like photoshop with words.
- leblancfg 10y ago3 months into vim and I'm only starting to get better productivity than what I had in my old editor, PyCharm. It's fine to learn the basics, but the hard part for me was to internalize not only the movements, but striving to use the smallest amount of keystrokes for any given edit. Always keep learning!
- cfeduke 10y agoSame for me. Vim bindings in all my editors across all the operating systems I use. The editor is the way you communicate your will to the machine. IntelliJ has a particularly good plugin JetBrains created. Eclipse has a decent plugin for USD$14, or it was when I bought it years ago.
- jay-anderson 10y agohttp://vrapper.sourceforge.net/home/ http://vrapper.sourceforge.net/home/ - vrapper is what I use for vim support in eclipse. It's quite good.
- moron4hire 10y agoI have been a "general purpose" developer (I hate saying "full stack", because there are no stacks and I don't always work exclusively cross-disciplinary). Mostly web-focused, but I've done stints where I was 100% SQL or 100% desktop. There was even a brief period where I was exclusively doing embedded C. I've done JavaScript since it was invented. I've done C# since it was invented. In that time, I've never been quite as excited about anything as I am about Virtual Reality, and specifically what Google and Mozilla are doing with WebVR. I don't think people understand how much 2D systems are holding us back. We've had the same WIMP interfaces since Xerox invented them in 1980. And we largely do the same things with our computers as we did in the 90s when the GUI finally captured majority market share. Making computers smaller and faster is not going to change that. Only a complete change in the user interface will change that. I've always banged around working on graphics, stereo-imagery, and simulation as a hobby, but I seriously started on making something about 2 years ago (actually, I recently saw my first commit for some reason, and it was July 10, 2014). When my son was born prematurely earlier this year, it lit a fire under my ass. I know a lot of people think that they need to get the startup stuff out of the way before they start a family, but for me, my family is my purpose, my family is what drives me. I feel strongly that well-designed VR systems are going to enable a whole new level of accessibility, interconnectedness, empathy, and collaboration. I need to make that world for my son. So because of the stuff I started 2 years ago, I now have a job where I spend 100% of my time working on VR. For the first time in my entire career, I look forward to going to work. I feel great. I have great coworkers. We do amazing things together. And it's because of WebVR.
- verdverm 10y agoGolang - turned 30k C into 8k lines of Go, no more gdb. Docker and containers for packaging, shipping, and sharing. Kubernetes because it fundamentally changes the way we design and build systems. ML (and now Cozmo+RL) cause future.
- martiuk 10y agoIt's not exactly a language but learning puppet has opened up a lot more opportunities for me recently and is what pushed me into contracting.
- protomyth 10y agoNeXTSTEP 3.3 changed my whole way of thinking. It was an amazing development environment with a separate interface builder that allowed me to spend a lot of time just thinking about the best way to do things. Objective-C is still one of my favorite languages. It was also my first BSD experience and lead me to FreeBSD and then OpenBSD. The difference between Objective-C / NeXTSTEP or Cocoa and C++ / WIN32 was amazing. Forth also made me go "wow". I really understood that way of thinking. I also think Forth is amazing for its ability to keep you from getting discouraged by allowing a problem to be broken down into new words. Postscript was my Forth "wow" combined with art.
- hellofunk 10y agoDefinitely Clojure, both server and browser (clojurescript), and also using React from Clojurescript (Om). These in combination gave me a big new glimpse into the wide variety of expressivity among languages, and how UI development can be significantly streamlined. I don't use Clojure as much any more but everything I learned has had a lasting impact and much of it trickles into my other work now, in other languages (mainly C++).
- calebm 10y agoPython, coming from C/C++, Javascript (at least circa 2003) was like leveling up 10x in my programming superpower. I was able to explore concepts and domains so much faster, and those concepts have led to my career. I've talked with friends who only know something like C# or Java, and I feel bad for them - they have no language in which to rapidly play with things. And that rapid ability to play (like with the Python REPL) makes a huge difference in learning.
- nhatbui 10y agoI can't agree with this more. Coming from C/C++, I was hindered by worrying about memory management and building everything from scratch. Python and its standard library just allowed me to wrap my head around algorithms.
- npezolano 10y agoSame story with me as well, Python has made me so much more productive, I can build websites and do monte carlo simulations with ease all from the same language.
- tootie 10y agoWhen I realized language and framework choice have at best a marginal influence on product success and started focussing on identifying the right problems and getting to a solution quickly without letting developers get distracted by superficial decisions.
- unoti 10y agoMy biggest oh wow moment came from learning Erlang. At first I had trouble adapting to its functional style and punctuation, so I gave up. Later when reading a book about another functional language (Scala) the concepts fell into place. The way Erlang works from a language and platform perspective changed the way I think about constructing both programs and systems as a whole. Today the learning process is far better and smoother using Elixir and Phoenix. Jump in and give it a try!
- deleted 10y ago[deleted]
- kentosi 10y agoThough not a language, nor a tool: A touch typing course. Early in my career I noticed programmers around me with 10+ years experience still typing the "preying-mantis" way (thumb+index+middle fingers pecking at the keyboard, head frantically bobbing eye-focus between keyboard and screen). I thought to myself that if I had the same experience as them and could touch type I would be immensely faster. I was right. Typing faster = coding faster = learning faster.
- benzor 10y agoI completely agree that a minimum typing speed makes a huge difference. That being said, the code output bottleneck is usually my brain and not my hands!
- npolet 10y agoVery much so. I think a lot of people who code or know much about it are surprised by how much abstract thinking there is involved when programming. I would love to time my work hours (somehow) over the course of a few months and see the amount of time spent thinking and jotting ideas down, to actually writing code. I work closely with non-developers a lot and they have mentioned that they didn't realise how 'big' programming, languages, algorithms etc... are. There is a hell of a lot of stuff to know. But I suppose this is the same with many industries.
- otakucode 10y agoIt can be problematic. Many leaders of companies think programming is a matter of typing. We've had a monumental fundamental shift in the workplace from repetitive physical labor (manufacturing) to mental labor, and the workplace has not caught up at all. They're still using the same structures and practices honed to perform well in manufacturing contexts. Human beings have very different needs and capabilities when it comes to mental work. But we still drop people in a big noisy open floor plan office, expect 8+ hours a day of continuous exertion, and load daily schedules up with distraction.
- facorreia 10y agoTurbo Pascal for CP/M, and later for MS-DOS. It empowered me to develop business process automation software and jump-started my early career -- I moved away from older tools like COBOL.
- sbalea 10y agoErlang. I used to be a C/Java kind of guy with a little bit of C++ and PHP sprinkled in. Got tired of using GDB to rummage through core dumps in order to figure out C/pthreads concurrency bugs. So looked into this new fangled thing called Erlang that came with this weird programming model called "functional programming". Boy I was hooked. Fast forward 7 years and a couple of increasingly lucrative and interesting jobs... Scala. Getting a bit bored with the Erlang ecosystem, got offered an (even more interesting and lucrative) opportunity at yet another startup, that was running on Scala/Akka/Reactive Streams. Jumped at the chance and went through what was probably the most grueling 6 months learning curve I've ever been through. Got to appreciate the benefits of a strong type system and a thoroughly modern/flexible language. Also gained a renewed appreciation for the simplicity and practicality of Erlang and it's virtual machine :) That's where I am now. What comes next, I am not sure. Maybe Haskell or Clojure. In any case, after all this it feels like I could handle anything anyone throws at me.
- cx1000 10y ago- making gdb user friendly with this .gdbinit file: https://github.com/cyrus-and/gdb-dashboard https://github.com/cyrus-and/gdb-dashboard - fabric, the python library: https://www.digitalocean.com/community/tutorials/how-to-use-fabric-to-automate-administration-tasks-and-deployments https://www.digitalocean.com/community/tutorials/how-to-use-... - sublime text package manager
- andretti1977 10y agoJava changed my (professional!) life. In 1999 i was able to develop desktop applications for both windows and linux without (too much) pain thanks to the JVM. It was love at first sight. After graduating i started developing web applications, always in java and it was very cool. Six years ago i started developing android mobile apps, always in java! So java was my love and game changing language and i still use it today for both web and mobile projects (Spring is a beautiful and easy to work with web framework). During all these years i have become a proficient developer also with groovy (Grails was great, but sloooow and little adopted), with objective-c developing iOS apps, php and javascript so i agree with who said that it is fundamental to learn different languages, but my favorite one is still JAVA, even today!
- geebee 10y agoFirst, ASP and Microsoft Access. I know, I know. But it made it so easy to create a web based prototype. I was in grad school at the time, and I was able to put working software on the web as part of class projects. People were impressed with that back then. Man, it got me hooked. Next, JSP and Servlets, JDBC, and MySql, along with POJOS. Made it easier to write consistent, clean code, and along with the Java Cookbook, programming was a lot of fun for a while. It all almost ended with JSF, Struts, Struts2, Spring MVC, Spring DI, Pico, Wicket, Tapestry, Hibernate, JPA... these were often the product of good minds and talented engineers, but, yeah, this almost ended my career in programming. I remember seeing a sysadmin and unix book on the desk of a web developer. I asked what he was learning for, and he gestured to a long row of Java related web books on his shelf. "I just want to be a systems administrator", he said, "I can't deal with this churn anymore." What had been fun now required a 2,000 page stack of books with constant churn, and so many little integration errors that doing even the simplest thing was a true slog. I wanted to secede as well, but many teams (and recruiting managers) absolutely insisted on this stack. I figured software was "over" for me, at least in web dev... Then, Rails. Pretty much saved programming for me. I get it, it's not the new shiny anymore, but it was blissful to get back to such a productive environment. Although the Rails community was too brash and dismissive of reasonable criticisms and efforts to improve the stack, I understand the hurt that was behind this angry rejection of the "enterprise" world. Get stuck on an "enterprise" Java project in 2004, see nothing get done, and then watch as people try to shoot down Rails or Django, and you'll understand why the anger hit this level, why people cheered when the simple words "Fuck You" were offered as a retort to J2EE criticisms of Rails. It's better to be civil even as you disagree with everything you've got, though, (the Django community seemed to understand this better than the Rails one). Lately, javascript framework churn has pushed me back into the way I felt during the explosion of Java based frameworks. The difference is that I know understand that this will pass, it's a period of chaos that often accompanies a large shift in technology and focus. It will settle down, and what emerges will be simple, effective, and useful. However, I am also making an effort to find shelter from the storm. Eventually, this will be sorted out, but I don't want to get sucked up into the vortex for several years like I did with Java in the mid 2000s. Like a lot of devs, I'm looking to stay on the backend - though this has always been my inclination anyway. Lately, scipy and scikit-learn, I hope. The ease of doing formerly difficult things may lead to some awesome new directions!
- coldcode 10y agoTurbo Pascal 1.0 in 1983. First real IDE, fast as hell even on a IBM PC/XT of the day. It taught me the importance of fast build/test cycles.
- PaulAJ123 10y agoBack some time around 1990 it was C++ and SCCS (Source Code Control System). OO was clearly a major improvement on structured development, and SCCS was my first version control system. Before that we just had a shared directory and would announce "I'm editing foo.c". Then I learned Eiffel. Preconditions, postconditions and invariants, in a language with garbage collection. This was obviously a big step up from C++, and I spent the next decade trying to get everyone else to see it too. As Java took over the world I looked around for the next big thing after OO, and decided to learn a functional language. Having seen how C++ made a mess of the structured/OO hybrid I went for the purest language available and learned Haskell. So now my hobby language is Haskell, and I'm hoping to make it my professional language some time. Once you learn Haskell you realise that every type system in every other language you know was designed by someone who didn't understand what they were doing. You are also finally cut free from the Von-Neumann architecture, so you can pick whatever form of computation best fits the problem you are trying to solve at the time.
- DanielBMarkham 10y agoA couple of things: C/C++ -- learning C/C++ took me from being a backyard hacker who could figure out stuff to being somebody that could code close to the metal. It helped me understand how all other languages worked. Javascript -- I really hate Javascript, even though I've been coding with it since it came out. But learning it gave me a front-row seat to watch the world evolve F# -- I wanted to learn FP and started with OCAML, moving to F#. Combined with lean startup principles, F# and pure FP showed me just how much time I had been spending fighting the tools instead of just delivering a solution. Changed the entire way I look at programming.
- jtreminio 10y agoHashicorp products. It's incredible how productive this company is, and how much I've come to use their applications throughout my career. First Vagrant, then Packer, then Consul, and soon Vault and Terraform. Everything I've been wanting to do for years, I am now doing thanks to Hashicorp.
- amingilani 10y agoHey! Okay, this might be the best coincidence I've ever seen. I'm a random guy on the internet that thinks Vault looks awesome and I want to use it for my next project, but I'm having trouble since the documentation is so sparse and thin. Do you mind helping me out for some good Karma? Check your twitter! :D
- jtreminio 10y agoJoin us on freenode #vault-tool
- amingilani 10y agoThere's a whole freenode community? My mind is blown. Coming right away.
- optionalparens 10y agoLisp - It was one of my first few languages, but really learning it damaged my view of everything else. To use a real Lisp machine, Lisp debugging/backtracing, and have code as data was such a huge win over writing ASM, C, Fortran, and the many other languages I used a lot back then. I still feel almost all other languages are catching up, while Common Lisp itself I felt got ruined by a lot of nonsense even though I still use it sometimes. So both excitement and disappointment here. This is where I really learned to use functional programming and became productive. All of my code since, even in OOP takes things I learned here like data first, preferring operations on lists/sets of data, and meta-programming. This is also where I learned that syntax really doesn't matter and people while they might have preferences, they are generally too caught up on syntax for the sake of it and not what it can do for you (ex: code is data, macros). Smalltalk - Some of the best ideas in CS that were warped, misunderstood, or ignored. Commercialism at its finest killed this and ruined the ideas from it. The productivity in this language was huge for me and the environment was and still is a wow. The aesthetics have almost always been awful though so it really bugged me that no one ever gave a practical instead of theoretical effort to improve here. The day I saw things like Gemstone Smalltalk dumping entire running states into a bug tracker and then clicking on the issue and being thrown into the debugger was one of many incredible moments. A lot could be improved, but like Lisp, lots of imitators and few equals. In terms of impact, this really led to me truly learning OOP at a higher level and made me think about code entirely differently - as a living, breathing, environment that was somehow more real than what Lisp offered. The separations from the OS into its own world made it both incredible (I still feel like using files 1-to-1 for code is nonsense) and a pain to use (ex: integrating proper source control and existing tools because of files issue). Clojure - Finally a practical Lisp-like experience that I don't feel like a crazy person trying to "sell" to coworkers to use on a project. Lots of things here I don't like, but even the author of the language agrees with me on most of those. I like the pragmatism, honesty, openness about what is good/sucks, and more here. It's really productive for me and I feel less in Smalltalk and Lisp land. The moment was like, "Rich Hickey, OK, this guy totally gets it." Emacs - I hated it at first, but when the concepts started to sink in for me, it made so much sense. Licensing and politics aside, it's pretty incredible. I wish there was less crust or a way to magically rewrite it and have all the good add-ons also magically rewritten. It truly is its own OS for better or worse like Smalltalk, and can be used and abused accordingly. It just still makes so much sense to me in both Smalltalk and Emacs that I'm writing code and I can use code to do things to my editor, both in terms of add-ons and while it is running (ex: if I need a special toolbar, window setup, whatever). Acme - It's an ugly editor, but wow it's full of great ideas. I didn't particularly enjoy the mouse chording but everything else is amazing. The relationships it had with the system using it in Plan9 just made it so powerful and full of possibilities. Overall, my best decision to improve my work was to stop listening to the masses and just try to do my own thing, with confidence. That doesn't mean just anything, rather it means follow my instincts and balance things with a healthy dose of pragmatism and extreme skepticism. That also meant ruling out new and shiny things as well as old and awesome things like Smalltalk and Lisp on many projects. Once I learned the difference of being a contrarian vs. an educated independent thinker, I became both tormented by how terrible most software is and encouraged to think completely differently and abstractly about it all. Still trying to do some great things with that attitude, and it's more the non-technical daily life struggles that are the real challenge.
- mamcx 10y agoFoxPro. I credited it for don't fear and be good at use RDBMS. Also, the most productive dev environment ever. Python (+Django). To show me how good syntax and well design API make the difference. Also, I'm mostly on python after all this years so is my main income generator! Delphi (until get too expensive and all the inestability...) What RAD is. I was able to circle around some local competition that waste time with .NET or others tools. Better than any else for GUI, far better for DB development that many (except FoxPro, of course). After the above, is from bad to worse. ALL other dev environments provide sub-par experience, more dev time, worse at RDBMs development, etc. ---- iOS. My main differentiation and second income generator. In my country (Colombia) the developers are mostly on Android. I'm one of the few that do "native" iOS development. --- F#. Because is my gateway to the ML family, AGDTs and almost as good as coding in python, except for the use of type inference.
- enapupe 10y agoReact + ES6 imports = wow + peace I got my first bucks as a developer more than 10 years ago. Only recently I felt like I have an actual good code structure. Having components and managing dependencies with es6 imports is truly awesome.
- deleted 10y ago[deleted]
- cableshaft 10y agoFlash. Without it's awesome graphics, animation, and sound integrated with programming and its awesome community at the time, I might not have even gotten back into programming, as I had taken a two year break from it at the time after a rough college computer science experience with terrible professors.
- AtheistOfFail 10y agoPow and Powder for Rails Development. Pow allows you to link an app to open it as http://app-name.dev http://app-name.dev Powder is a rails gem that automates the process for you.
- mikestew 10y agoFoxPro for Unix. The FoxPro part is what kept a thriving consultancy going for years (which we sold before...). The Unix part is how I ended up at Microsoft, ironically (in the 90s) because I knew Unix and a hefty helping of FoxPro knowledge didn't hurt. I haven't touched FoxPro in over ten years and work primarily on mobile now. But a stint at Microsoft opened up all kinds of opportunity, and that wouldn't have happened were it not for a small company in Toledo, OH cranking out desktop database software. Otherwise I'd probably still be in Indianapolis cranking out CRUD for some insurance company.
- ljw1001 10y agoFoxpro was my first language and I loved it.
- deleted 10y ago[deleted]
- jafingi 10y agoLINQ
- codewritinfool 10y agoBorland Delphi. Beautiful IDE, native code output with no runtimes, lightning fast compiler.
- anythingbot 10y agoidentity-fixing monotone (in the prefix relation, a partial preorder) maps of cancellative monoids. It is possible to use them as a model of abstract sequential computation, so they can be used for applications such as mathematical models of compilers, parsers, ... http://mathoverflow.net/questions/251059/what-is-the-real-name-of-this-relation-and-operation-on-a-particular-set-of-maps http://mathoverflow.net/questions/251059/what-is-the-real-na...
- gpsgay 10y agoHonestly? PHP hehhehee. PHP is a language that works for people who want to get things done on the internet in a very uncomplicated way :P... Plus, it is also quite powerful if you actually go into detail and access low level things as well. I hated Java for example... But PHP.. Oh, you can programme such wonderful things with just a text editor.
- vintagedave 10y agoFor me it was Delphi. This was in the nineties and it was a beautiful language paired with a UI editor in a time when that didn't exist (there was only VB (ugh) or MFC, if that really counts as a UI designer.) It had a huge influence on languages, especially C#, which feels like Delphi-with-braces to many Delphi programmers. For me as a teenager, it was when I "got" OO programming and set me off on a programming career, which led to many adventures (sailing, natural disasters, etc.) I came back to it quite recently and it's advanced a lot, although I use its C++ sister product, C++Builder, which pairs the same UI tech with C++, a trick that is hard to pull off (Qt manages it, through many clever C++ tricks; C++Builder does it through a couple of neat language extensions which I feel is cleaner overall. I really like it. This year I started working at the company making it, so full disclosure there, but I work there because I like the tech so much.)
- NickHodges0702 10y agoDelphi. By a mile. I had dabbled in Turbo Pascal for Windows, but Delphi was, and still is, the thing that gets me up in the morning.
- vmorgulis 10y agoRasmus Lerdorf about PHP Frameworks: https://www.youtube.com/watch?v=DuB6UjEsY_Y https://www.youtube.com/watch?v=DuB6UjEsY_Y
- dvd-darias 10y ago-> ssh + bash Being able to fully control a remote computer as if i were in front of it is a most. -> git The distributed nature of git still amazes me. -> multiple cursors & fuzzy search Sublime Text pioneered multiple cursors and fuzzy search over all the options of the text editor, now most modern editors have included it. I use Visual Studio Code btw. -> docker Web development, deployment and configuration have been vastly simplified with this open source project. -> NoSQL databases, in particular MONGO DB My view of data fits way better with non relational databases, and not having to deal with migrations is a gift.
- mikeleeorg 10y agoJavaScript. This is way back in 1998, when there was still VBScript and JavaScript was still very nascent. I had no idea it would have the impact it has had on the Web today. I just found it a cool way to make rollovers and other effects. When CSS and "DHTML" came around, its potential was starting to dawn on me. Others saw it first, but that was when I started to approach it in earnest. I created and played with so many cross-browser JavaScript libraries in that day. (Anyone remember 5k?) This is way before jQuery. Even made a bunch of widget libraries. Looking back, it was such a Wild West. Arguably, it still is. Somewhere around 2003-2005, a bunch of colleagues and I started to apply formal computer science discipline and principals to JavaScript. Many others were trying similar things too. I even remember using an iframe to dynamically load and change content on the page without a refresh, a precursor to "AJAX" when it was coined in 2005. Somewhere around this time, I remember colleagues talking about using JavaScript on the server too, instead of just the client. It's pretty crazy to see how far this little scripting language running on a Netscape browser has come.
- cr0sh 10y agoGonna keep this short. My biggest moment was when I finally learned and understood how artificial neural networks (ANNs) - and specifically back-propagation - actually worked. It happened in the fall of 2011 - I took on the challenge of the Stanford University sponsored AI Class (Thrun, et al) and ML Class (Andrew Ng). I wasn't able to complete the AI Class due to personal issues, but I did complete the ML Class. In 2012 I took Udacity's CS 373 Self-Driving Vehicle course (and completed it) to "make up" missing the rest of the AI Class. But it was the ML Class that really drove things home; learning and using Octave was a revelation for me (vectors as a primitive? COOL!) - and learning to think on how to parallelize problems for that (and then later learning that an ANN was just such an application) - woke up a lot in me. Finally - a practical use for a home Beowulf cluster! These experiences have led me to this year, where starting on November 28th, I'll be participating in Udacity's Self-Driving Car Engineer nanodegree program. I believe that as we move forward in the future as software engineers, knowing and understanding ML and AI algorithms, etc will be something employers will increasingly want and expect of developers. I'm keeping my skills current - you should too. /43 years old, been professionally coding since I was 18 - and coding in some manner or another since I was 11 (yep - TRS-80 Color Computer w/ 16k FTW!)
- andrei_says_ 10y agoSlim, never writing HTML again.
- doobiaus 10y agoredis. Coming from years of old school "Web + DB + memcached" redis has blown me away with what it can do from searchable lists for typeaheads to pub/sub.
- nojvek 10y agoTypescript + VSCode. That stuff is crack.
- 59nadir 10y agoI started out doing a few years of C++ and ended up fairly disenchanted with programming. I had started when I was 14 and by 19 I was sure I didn't really want to sit down and program every day, because it just wasn't exciting enough anymore. I found Python around 21-22 and it completely changed everything. I could sit down and just flash through the whole process of idea to actual execution in one day and I didn't have to micromanage everything. Programming became exciting again. A few years later I was having a hard time with some personal issues and I ended up trying to distract myself with SICP. SICP just lifted a whole layer of fog for me and while in the process of reading it I found Racket. So I went into the rabbit hole that is Racket and found myself just unmasking programming languages in general, making all of them so much simpler and easy to learn. When I was done I just had a new appreciation for language features and how to build them. Not all that long ago I looked at Elixir and started playing with it. While doing so I realized that there is no stack that can make playing with processes as easy as the BEAM and what that means for the apps you're making. The BEAM changed the way I looked at multi-threading and concurrency and it's the platform I'd use for all forms of control systems, with the branches in those systems either running entirely on the BEAM or just communicating to external nodes in other languages when needed. After about 4-5 months of Elixir I landed a job using Erlang at a game studio and I'm extremely happy to be using the BEAM professionally. We're allowed to create fairly amazing things and the things we build, even though I don't agree with the reason they're being built all of the time, are made possible only because of the BEAM (running interop with Lua, etc., running all communication through the BEAM). Lately everything's finally clicked for me with Haskell and I find myself not having issues with the things I had issues with previously. I don't know how, exactly, but I think I let my brain finally absorb "Real World Haskell" (the best book, in my opinion: If you're only going to read one, don't let it be "Learn you a Haskell". LYAH is nice as a reference, but I don't think the demonstrations in it are very good, relevant and exciting) and so I was able to _not_ worry about monads and simply use them, letting the idea of them just emerge in my head because of familiarity with them from usage, instead of forcing monad tutorials on myself. When I started to appreciate Haskell as just another language is when I finally understood why it was so great. It's amazingly practical and I've redone some of my older Python projects in Haskell only to find that I've got about the same LoC count even with types, which means that I've got more safety, more robustness and I can add things faster and with less headaches. With these languages, there aren't many things that are impossible, and I feel like they've all changed something in me in terms of how I look at programming.
- irascible 10y agoJavascript+webgl
- p333347 10y agoI have been a C++ dev for all my career (about 14 years), so JavaScript was pretty cool relatively speaking. For various reasons I had been a Luddite of sorts and late to the webapp party. But when I finally got in, (more like circumstances left me no choice, technically not financially or socially) mid 2015, I was amazed at the influx of ideas I had. I mean, not only am I porting my desktop apps to web, I am also tinkering with ideas that never made sense desktopically so had never occurred to me. I have to admit that JS was a PITA, albeit of a different kind from C++, but it has certainly made me more confident and viable in starting my own thing. (For those who care, the front end is in Vanilla JS and for back end I am planning ASP.NET and WebAPI.)
- gowthamsadasiva 10y agoIt's "Docker" that changed my career and I still believe it has the capability and growth to change my career further too. When I landed my first job back in 2012, I used to be a PHP developer. As obvious, working in a startup will force you to be a jack-of-all-trades, I started picking up SysOps (Linux, Web Servers, Email Servers, Deployment..etc) tasks along PHP development. In mid 2013, I stumbled up-on "Docker" and I started learning it immediately. Mostly, I used it to solve dependency and packaging issues for my PHP projects. Soon I became fluent in SysOps tasks too. Early 2014, I wanted to get into a new job. But not sure to continue as a developer or get in-to DevOps. Instead of doing the same old boring development, I chose to be a DevOps and the opportunity was provided because I have working knowledge in "Docker", which is not an easy find at that point of time. Actually I got a pile of opportunities and landed in the best among them. After 2 years passed by now I'm at my third job in a different startup, which again I work mostly with Docker. By looking at the Docker's growth and usability, I could even say, it's gonna get my future job also :)
- NumberCruncher 10y agoEnglish and German. I need the former to read documentations for being up to date and the latter to communicate with people who can pay me a decent salary. I can pick up any programming language I need but a third foreign language? At my age it could be pretty hard and time consuming.
- mightybyte 10y ago~20 years ago: Vim Seven years ago: Haskell A year and a half ago: Reflex FRP with GHCJS These three events dwarf everything else in my experience.