5 ms·
I'll refer to patio11's legendary blog post [1] (Don't call yourself a programmer) by saying don't be just a .NET developer. C# is a great language, but you kno
by nedsma 9y ago
I'll refer to patio11's legendary blog post [1] (Don't call yourself a programmer) by saying don't be just a .NET developer. C# is a great language, but you know, so are Python, Swift, Go, Elixir to name a few, and are even easier to learn/practice. By staying exclusively committed to a single language/framework, you're missing out on a lot of fun. The initial productivity anxiety usually wears off after a couple weeks.
[1] http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-pro...
- pjmlp 9y agoKnowing the language grammar and semantics is one thing. Knowing the language grammar and semantics, standard library, good quality third party libraries, database drivers, official build tools, IDE and VIM/Emacs plugins, best practices, main blogs,tooling for native applications, tooling for web applications, backend servers, .... is another matter altogether. Now multiply this per each language. I rather constrain myself to JVM/.NET stacks, with a little C++ on the side for pure native stuff. That is already a lot to keep on my head. Everything else is nice to dabble on rainy weekends, but that is about it.
- nedsma 9y agoGreat! I'm talking about experienced developers like you, who know what it takes to be productive/get things done. First you learn grammar and semantics of some new language, then you want to build a product. From your past experience you can tell what's necessary for solution to be successfully created (all the things you mentioned and some more). Make it a list, evaluate, revisit your best choices as you go. Once you find yourself happy in the new environment, you're in a position to more accurately determine which of the tools now is better for the job.
- tonyarkles 9y agoI'm curious, as a long time emacs lover now doing C# work in a day job... is there a good way to do C# in emacs? I'm quite happy with VS2015+ReSharper, but I do sometimes long for emacs.
- pjmlp 9y agoBeing an IDE person, I never bothered searching for C# on Emacs. I am an Emacs person regarding Emacs vs VI debate, and got to learn how to use it quite well back in the day (actually XEmacs), but it was only as a workaround for lack of nice IDEs in UNIX. Nowadays I seldom use it. EDIT: I guess Omnisharp plugs into Emacs as well.
- tonyedgecombe 9y agoOn the other hand you could probably spread yourself too thin as well.
- nedsma 9y agoWith mainstream programming jobs that can't happen. Any proficient JavaScript developer can pick up in matter of weeks/days any JS framework, or would you like to keep on insisting, e.g. on Angular? If you were primarily a .NET developer for the last three years, and then you switch the stack for a year/two, would you miss out something from the .NET world? Hardly. The foundation and good programming practices change slowly. The previous experiences are burned in in the memory and don't seem to fade.
- pjmlp 9y agoAngular is actually a modern stack in enterprise projects. Only this month I became aware of RFPs for a JSF one and a ASP.NET MVC 4 one.
- nedsma 9y agoSure it is, but it will eventually give up in popularity. Enterprises will then accordingly update their stack. I have a rule which says: if an established tech. community (built around particular subject) isn't screaming about some new change, it's probably not a big deal.
- cableshaft 9y agoAngular is part of our .NET stack at our company. We are starting to rewrite bits of our newer projects to Angular 2 now too.
- douche 9y agoAgreed. It's a lot of work rewriting an application with hundreds of thousands of lines of code and hundreds of screens every six months to chase the slightly-stale thing in front-end world.
- 9y ago
- wvenable 9y agoI'm actually a bit tired of switching platforms all the time. You spend more time re-getting up to speed than producing applications. Although I'm not a fan of JavaScript-everywhere I can see the appeal when I want to do work on Windows, Linux, Android, and Tizen applications and don't want to switch between a dozen different technologies and frameworks. It's too much for a single person to manage. We have to accept that there is a real human limitation. You cannot be an expert at every technology that exists. If you try, you'll be forever spinning you wheels and never actually build anything.
- nedsma 9y ago> You cannot be an expert at every technology that exists. Why would that be a goal? I'm not saying that mediocre work is a good thing either. A really competent programmer in one language/framework will find out that obtaining a comparable level of competency in another isn't surely going take as much time as one has needed when initially starting. Why? Because programming activities affect programmer's mind and enable deepening of mind's properties such problem solving, organization, logic, attention to detail, creativity, focus etc.
- wvenable 9y agoI agree. Getting competent in another language/framework isn't difficult -- I've done it more times than I can count. I agree having a few different perspectives is good; learn a functional language, learn assembly, etc. I'm not dismissing problem solving, organization, logic, etc. But you can't dismiss the practical details like what APIs exist, what bugs they have, how do you call them, language features, platform differences, XML configuration file of the week, etc. You can only hold so much of that in your mind at once. And having that is what gives you productivity.
- nedsma 9y agoI agree with you and I'm not dismissing. Each stack has its own share of problems and intricacies, but some are more complicated (.NET, JVM languages). Speaking from my own experience, building Java/.NET inter-operable web services having involved WS-Security extensions (STS, SAML assertion) wasn't quite pleasant. Other stacks follow different programming schools of thought and may result in different approach to a problem.