Subject line says it all. What's next on your list of things to tackle and get to grips with? Got a language you want to learn? Want to grok dynamic programming? Think it's about time you understood type theory?
What's next? And why?
Subject line says it all. What's next on your list of things to tackle and get to grips with? Got a language you want to learn? Want to grok dynamic programming? Think it's about time you understood type theory?
What's next? And why?
For me it is a better understanding of LINQ, jQuery and MVC
I really want to do something with C#, if only I had enough time.
Ruby on Rails. Because it's about as far as I could get from my current skill set without becoming a Haskell programmer or something.
Smalltalk, Objective-C and SOA Best Pratice. Ok I know , I'm a bit spreaded out
Functional Programming, mainly Haskell.
I'm armed with GNU Emacs (with Haskell Mode), the online version of Real World Haskell and the GHC and I'm ready to get stuck in.
Lisp and Haskell. Lisp macros seem to be mind-blowingly powerful.
Javascript for fun.
Obscure bug at work is pushing me to learn strace, tcpdump, signals, poll, and such like.
Much more EMACS...
I can't really rely on TextMate anymore. It's awesome, but it's only for Mac.
Ruby and C++ because I haven't been there yet. I've been doing .NET (C# and VB.NET) and JavaScript development for a few years now, and it's about time I learn some development languages/platforms that aren't Microsoft based. FYI, before .NET I was a VB6 and Classic ASP developer.
C++ and the STL. My knowledge in the area is limited to the academic stuff. As someone in the C# / .NET side of things, it'd kind of nice not being hand-held through non-trivial tasks. :)
Lisp. I took a class in college, and I've been meaning to get back to it ever since. I finally have a project or two on the horizon that use lisp as a scripting language, so I've finally got the excuse.
I'd like to do more with Python perhaps some dabbling in Django as well.
Ruby on Rails, or Silverlight. Coin flip as soon as I finish Head First C#.
I can spell SQL - I need to learn database technology. My team uses it every day and I don't grok it near enough.
WPF and jQuery in ASP.NET!
Edit ~ I forgot Adobe Air, I've been meaning to get to this for a while.
Which language - Why?
Python - used at work, powerful, expressive, GoogleAppEngine
Groovy - full Java API, some momentum behind it
Objective-C - iPhone Apps
C#/.NET - Want to know what all the fuss is about, Visual Studio Express is free, Used at work.
My perennial "wish I knew better" was Lisp. But I've almost never had a project where Lisp would have made it sufficiently easier & less time consuming than, say, C++, to justify me learning it.
F# sounds moderately interesting and in the same category as Lisp, but with the added hassle of .NET libraries.
Other than that, I'm exploring data mining as a hobby, and I am reading about professional level software engineering to prepare my grad student-y self for the business world.
I'm definitely going to learn more about JQuery + Grails and maybe some Django if I have time to spare :)
Unit Testing, because I think I should. I really need to stop putting this off.
Also as chakrit mentioned, more Django, because I've enjoyed the little I have done.
More about UTF-8, because I find it interesting.
I just started reading The Art of Multiprocessor Programming by Herlihy and Shavit. Heavy duty concurrent programming, updated for modern hardware.
How to use the advanced features of c#
How to use DirectX to speed up some image processing
In to learn in no order:
technologies:
concepts
things to forget
php and java
Get a vacation long enough to get an REALLY interesting book
If only I found the time now...
just one last game, gotta beat the highscore
LINQ in C# 3.0 at work. At home I'm trying to find time to learn me some Ruby on Rails. You know do some web development and such. Always wanted to learn Javascript too.
Marketing, Communications (speaking at conferences), stockmarket analysis, and Erlang :)
I'm afraid Windows Presentation Foundation is the next step for me. I say "afraid" because what I need to do with it is an extremely non-trivial reimplementation of the software I've been developing over the last 3 years. I know enough about WPF at this point to know how much I have to learn before I can do this with a reasonable expectation of success.
I started learning Haskell and so far it's real fun. I must admit it takes some time to get used to it (20 years of imperative coding getting in the way) but even the most trivial programs are pretty rewarding when they compile the first time (and run as expected!). I pretty much feel like the young me learning his first programming language again... The other big topic for me at the moment is design, i think there's a lot to learn for many programmers.
Learning how to lead. I already know how and why to write unit tests, but getting the rest of my team on board is a totally different matter. Same for decent comments, documentation, etc. etc.
Haskell, Smalltalk, ML, Nemerle, Boo... pretty much a whole bunch of interesting languages.
My current objective is learn how to manage software requirements (functional and non-functional) as well as estimate development time better.
After all these years of working I'm still getting 200% more time than originally estimated to get things done and I'm still accepting confusing (and even paradoxal) software requirements - and my team is suffering with it.
I kept wondering if there was a language / concept / anything out there which can be used as a silver bullet to my problem but instead of going to code books I have to resort to project management books.
Unit testing.
I need to get a good grasp of the concepts to be able to implement it in my current working enviromnent.
People skills.
The single most important determinant of future income is the incomes of the five people you associate most with.
Also, dealing with people is fun.
Jquery, Python, Unit Testing, and .net 3.5 related things (and some 2.0 related things, actually). As for order, Python I'm trying to pick up on my own. Jquery I want to use at work; unit testing is about becoming a better developer and the .net stuff is because we're a .net house and we might be migrating forward in the near future and I want to stay up on things.
Functional programming, specifically F#. F# is the first one I've played around with that has enough library support (via .NET) to make it worth my effort.
I just started reading "Code Complete" after reading many positive reviews on SO.
Sadly, it has to be Sharepoint. We are doing an implementation of that at our shop. I would much rather spend the time on LINQ-to-SQL.
I have read a lot recently about the how C++ and C# are not true OO and are more class oriented (or template based) languages. As a VB programmer by trade (and more recently a C# developer) I have argued that OO is not just about the language and more about the approach. I now want to understand the "true" OO nature of languages such as Ruby, and arguably aspects of Javascript such as prototyping.
Programming wise: ASP.Net MVC and WCF. Operating System: Linux, just to play around with a distro and see how well it runs for me. General technology: Virtualization.
This is ignoring the things currently in my doing list like Sitecore.
A more solid knowledge of the most widely used design patterns.
More Design Patterns
and after that
Architectural Patterns.
I hope this is the right order to do it...
My next big thing is jQuery. I really jazzed the Microsoft is going to start including this technology in Visual Studio Scott Gu's Blog about jQuery and Microsoft. Obviously it's important.
With jQuery I'm learning how to build something big with MVC. I'm beyond the examples and need the tough problem to help advance my knowledge.
Lisp and assembly (any arch), but not necessarily in that order.
Lisp, mainly because of all of the things I've heard about it (being a "powerful" language per Paul Graham, being a "must-learn" language per ESR, etc.)
Assembly, because I believe it will give me a new perspective on programming. Not to mention allowing me to do programming that is "closer to the hardware" than I can with C.
Haxe. Got some ideas for animations, mostly 2D or semi-3D, with some user interactions, and i have no particular reason to stick with actionscript or the Windows-based Flash app or any other conventional tools. And it's free, can also make javascript and other output types. It might not be big out there in the world but it fits my odd little side projects just fine. Or, i think it would... gotta learn it better...
Writing a basic language. The primary goal of being to better understand compiler theory and to gain insight into how to write many of the constructs I use every day. Also, it would just be really cool to play around with my own language.
(I'm a web developer) jQuery, because re-writing common javascript everytime I want to do something is just silly. More advanced uses/functionality of ASP.Net and C# - I keep running across built-in classes that do really interesting things. and keep going with PHP - coz you have to know at least one free server-side language.
To be even more self-disciplined.
To stay with the thinking of the best.
To eschew mediocrity.
Just Started Perl a few weeks back, so next to learn is.... more Perl!
I'm gonna need to learn it for my network engineering & security analysis course anyway.
F#, jQuery, Lua and MVC. I also have some books on string/text algorithms that I'd like to finish off.
Definately some more on collaborative work - subversion got me a taste for more team based programming.
I want to learn:
I can already see that this will be a fun year:D
Erlang, Scala, Haskell (I think it's obvious why).
jQuery (I tried some mixed flash/JS-frameworks but they are as broken as Flash is; YUI is good also, but it takes a little too long to do small things with it).
Primarily I want to learn to manage my time more effectively, because right now it seems to me that there are not enough hours in a day, and not enough days in a week!!
Then I'd like to learn Python, and perhaps work a little more with WPF.
TDD and C#.
Even if I plan to migrate to Linux... :) Yes, probably, I'm a masochist.
Better parallel programming techniques like hybrid OpenMP/MPI since it will be the best way to cope with future architectures.
Ada: I have just started using it at work for the project I am on. I will be working in Ada for about the next 2 years so my feet should be pretty wet in it once this project is done.
And to think, my Comp Sci buddies and I used to joke that we should write a wrapper around Java called AdaWeb. It would be the next big thing, secure, reliable, and now with more WEB! Of course the joke is on me now that they have a bridge between Ada and Java allowing you to call Java from Ada ;-)
New stuff I'd like to learn is jQuery and Ruby on Rails, along with improving my understanding of everything else, specifically ASP MVC.NET and Linq.
let me see :
Grails -> done
Grok -> done
Javafx-> done
GWT -> useless but done
hum...probably ruby
Maths.
Specifically, learning enough of the symbols and the names of different types of math that I can decide which bit of math I need to know about to do whatever jobs come up. At the moment, the door is closed because I don't speak the lingo.
In no particular order:
I'm just coming back to programming after a loooooong break (doing sysadmin and business stuff) and I'm learning Java for a possible job, but I'd like to learn C, to get me as close as possible to the machine (without getting spattered with grease, like you do with Assembly! I'm too old for Assembly...)
Django, because there might be some money in it for me.
Embedded microprocessor programming, because I love writing code that affects things in the physical world. I've got a Teensy++ sitting on my desk, blinking out Morse code now. Now to wire up an LCD and some servos.
My Computer Science education was fairly strong on the "computer science" part, a bit light on the math part, and left the applied stuff (learning and using specific languages and technologies) to us.
My learning cycle is a balance of these three things. This is my first year as a professional programmer, and I've found myself in a world I never expected: web development. While I was busy completing CS assignments in C++, the web was becoming a legitimate application platform, and one where SO much new development (and, thus, new job opportunities) is focused.
So, my learning list looks like this:
1. Sharpening PHP/MySQL skills to advanced levels, learning jQuery and AJAX
2. Going back through my old CS textbooks, reading other "classic" CS texts that I didn't get in school
3. Re-learning the math I either forgot or never really knew before. :)
I think this balance is good for my long-term development.
deeper C++, master degree php, beginner ASM, APIs in general, XML, complexe mathematics... hash algos
Where to start? There's a ton of interesting stuff out there. Scala and Clojure are at the top of my list since I'm a java fan now. Android development seems really interesting too. I've always wanted to do 3D programming so OpenGL is on the list as far as general programming interests.
It will be exciting to play around with Closures when Java 7 comes out, but I don't expect it will take very long to learn them.
Lisp. I have played around a bit with Practical Common Lisp and the language fascinates me to no end. Even if I never use it for a real project I have the distinct feeling that learning Lisp will make me a better programmer in other languages as well.
Also, hardware! I love building software but I would love to learn how to build some custom hardware for it. From simple controllers to home automation. For example, I have written a jukebox daemon not unlike MPD that runs on my home server (absolute alpha quality but hey, it works for me). I'd like to build a small "box" that can listen to an IceCast stream and output to my stereo. I'd like to build some sort of remote control for it, etcetera. I've been looking at Arduino to see if that can serve me.
DDD (Domain Driven Design). I have played with various MVC frameworks, most of which ape RoR and ActiveRecord. But I have the feeling that ActiveRecord is breaking down when the application becomes more complex. So, I have been reading up a bit about DDD, DataMappers, etcetera. This probably also means trying out something like Zend Framework in the near future.