﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Raj Aryal commented on How would you learn a new platform?</title><description>  
This is a must (for every developer, java or not)
  
Effective Java - Programming Language Guide
  
  
Latest trend inclines towards:
  
IOC with Spring (not j2ee standard framework), google frameworks for java and ejb3
  
  
Needless to say and I am sure you know as much as anybody else, hibernate orm
  
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment46</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment46</guid><pubDate>Mon, 14 Dec 2009 21:03:59 GMT</pubDate></item><item><title>Mischa Kroon commented on How would you learn a new platform?</title><description>Suggestion:
  
Try to pick the trainer you respect most for Java, or most convenient for you to visit. 
  
  
Then email then with the question which course you provide would work best for me to follow. With a paste from this blog post. 
  
  
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment45</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment45</guid><pubDate>Mon, 30 Nov 2009 14:30:38 GMT</pubDate></item><item><title>Joshua Arnold commented on How would you learn a new platform?</title><description>Having served my time in the Java world and seeing the work that you do, you're right in saying that it's not your understanding of technology or design that's going to be your obstacle. I love .NET but I strongly believe that Java has its place.
  
  
The fundamentals are what kill everyone when they work w/ Java: building/compiling/packaging and splitting up "projects" since it can be a pain. I imagine a couple days of fiddling with that and you'll be ready for any advanced course.
  
  
You're far more experienced than I am but my suggestion would be to port a small application over (specifically something leveraging WCF) in incremental steps: 1) Direct port 2) modifications to incorporate usage patterns and 3) modifications to take advantage of platform-specific features.
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment44</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment44</guid><pubDate>Wed, 25 Nov 2009 17:27:39 GMT</pubDate></item><item><title>Patrick Smacchia commented on How would you learn a new platform?</title><description>Ayende our experience differ on this point. I often try to get the most of the platform and I often end up with deep technical difficulties with under the hood P/Invoking things. On my current project I estimate resources are partitioned this way:
  
  
40% feature
  
50% non functional requirement: usability, ergonomy, UI polishing, performance, memory consumption, responsiveness
  
10% bug fixing, reliability
  
  
Certainly more recent fully managed technology like WPF can help focusing more on features themselves. 
  
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment43</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment43</guid><pubDate>Wed, 25 Nov 2009 11:07:37 GMT</pubDate></item><item><title>Ayende Rahien commented on How would you learn a new platform?</title><description>Petar,
  
I'll probably do that, but not in the near future, probably in a month and a half
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment42</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment42</guid><pubDate>Wed, 25 Nov 2009 09:59:49 GMT</pubDate></item><item><title>Ayende Rahien commented on How would you learn a new platform?</title><description>Patrick,
  
I fully agree with you, but I think that you'll admit that 95% of the time, you aren't dealing with technical difficulties with the platform.
  
You are dealing with algos, design, features, etc. Running into deep tech problems just doesn't happen all that often.
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment41</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment41</guid><pubDate>Wed, 25 Nov 2009 09:58:12 GMT</pubDate></item><item><title>Rajesh Pillai commented on How would you learn a new platform?</title><description>Try this.
  
  
[www.javapassion.com](http://www.javapassion.com)  
  
This is a community learning experience.
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment40</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment40</guid><pubDate>Wed, 25 Nov 2009 08:52:19 GMT</pubDate></item><item><title>gunteman commented on How would you learn a new platform?</title><description>About a year ago I had to venture into the Java world (first with a browser applet, believe it or not). The language itself presented no problems, but Eclipse took some getting used to. A solid tool, no doubt, but VS2008 seems easy in comparison. After that, my most lasting impression is that the Java world has somewhat moved on from the pattern paralysis that surrounds .NET, but instead moved on to be frameworkaholism. There's a framework for everything, and as if insanely intricate Ant builds wasn't enough, the casual coder now often have to deal with the hurdle that is Maven...
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment39</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment39</guid><pubDate>Wed, 25 Nov 2009 00:03:36 GMT</pubDate></item><item><title>Petar Shomov commented on How would you learn a new platform?</title><description>Hi Ayende,
  
  
I have an idea. A lot of people exchange language teaching in their native language, teach each other for an hour. I am told it works great. So I have an offer for you: I offer that we can do a few sessions over some screen sharing thing and I can help you with your questions regarding Java as far as I can and in return I get to ask you some questions about things you know. I will probably be getting the better end in this deal but I think it still be beneficial for you too ;). My environment I have used and feel comfortable talking about is:
  
  
Java(generics is probably the most sophisticated thing in Java), Spring (IoC, AOP, MVC, MVC portlet, and some more I can't remember right other), IntelliJ is my IDE and you will prefer it if you are using the R# intellij bindings, Tomcat, Jetty, Unit testing for different technologies, mocking, TDD, some web services stuff (Apache CXF), and a few more things I am probably forgetting.
  
  
Call me ;)
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment38</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment38</guid><pubDate>Tue, 24 Nov 2009 20:40:01 GMT</pubDate></item><item><title>Mike Brown commented on How would you learn a new platform?</title><description>It's been said before but it's worth repeating. Take a project that you can do in you sleep on your platform of choice and port it to the new platform. Force yourself to do things in the manner of a native platform developer. 
  
  
Find the bloggers that everyone is pointing to in the other platform's community and read their content voraciously.You learn the neatest tricks from the community leaders.
  
  
but the most important thing is to practice practice pracice. As I'm sure you know, there's much more to programming a different language than syntax.
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment37</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment37</guid><pubDate>Tue, 24 Nov 2009 15:57:55 GMT</pubDate></item><item><title>Manoj Waikar commented on How would you learn a new platform?</title><description>I agree that pairing with other experts looks like a good idea to shorten the learning curve. You might want to read this - 
[blog.thinkrelevance.com/.../hacker-in-residence...](http://blog.thinkrelevance.com/2009/11/11/hacker-in-residence-update-and-call-to-action)  
  
This company works in Clojure and one of its founders wrote the Programming Clojure book. And as you might already know, Clojure works on top of JVM, and an added bonus is that you'll learn a whole new functional paradigm.
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment36</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment36</guid><pubDate>Tue, 24 Nov 2009 14:19:02 GMT</pubDate></item><item><title>Patrick Smacchia commented on How would you learn a new platform?</title><description>Sure, the time spent and the number of developers on a product doesn't mean success nor quality. Also, I've seen successful products done by non-experts. But they were successful just because they met their market, the original idea and schedule were good but the product quality was very low.
  
  
Within the last years I learnt with my team to develop features in a optimal way. I don't want users of the product felt some compromise were done. I don't want them feeling that it is good, but it could be better developed. This will be especially true in the next major version we spent the whole 2009 year on. This is my conception of software engineering.
  
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment35</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment35</guid><pubDate>Tue, 24 Nov 2009 12:47:05 GMT</pubDate></item><item><title>Ayende Rahien commented on How would you learn a new platform?</title><description>Patrick,
  
I have seen products that had hundreds of man years invested in them flop, I have seen products that had maybe a week of work soar.
  
There is no real correlation between awesomeness and the amount of work on a product.
  
Bad good products do get better when you improve on them, for sure.
  
That doesn't mean that you need to be an expert in the field you are working on to be able to create them
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment34</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment34</guid><pubDate>Tue, 24 Nov 2009 12:04:37 GMT</pubDate></item><item><title>Patrick Smacchia commented on How would you learn a new platform?</title><description>&gt;Most of NH Prof was done "fast". 
  
  
Do you mean that developers of rockstar products like VisualStudio, R# or CodeRush take years or decades to make awesome products but it could be done faster?
  
  
I don't think that quoting NHProf is relevant coz the product is v1.X. 
  
[http://www.nhprof.com/](http://www.nhprof.com/)  
  
I am not a DB guy and don't know too much NHProf but I know that it is a fantastic tool that help a lot its user. But I guess also that you have ideas to make the product smarter, nicer, faster, with more facilities, with amazing features that you are planning for the future. In 2 years, NHProf v2 or v3 will be incredibly better than what is NHProf v1 now and such quality gap will take you months and years of hard development. This is what I mean by good product cannot be done fast, it just requires deeper and deeper expertise.
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment33</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment33</guid><pubDate>Tue, 24 Nov 2009 11:55:56 GMT</pubDate></item><item><title>Ayende Rahien commented on How would you learn a new platform?</title><description>Patrick,
  
I wouldn't call myself a WPF expert by any means, but being able to isolate the problem required absolutely no WPF knowledge, all it took was standard .Net debugging skills.
  
And those applies across the entire stack. Once I got something small &amp; reproducible, I got an answer in a matter of minutes.
  
  
And I disagree that good job cannot be done fast, it is most certainly possible. Most of NH Prof was done "fast".
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment32</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment32</guid><pubDate>Tue, 24 Nov 2009 11:34:19 GMT</pubDate></item><item><title>Patrick Smacchia commented on How would you learn a new platform?</title><description>&gt;Can I get good job done without spending years on a particular topic?
  
  
Good job cannot be done fast. You know the project I am working on, it cannot be done properly without years of advanced development and a deep expertise on plenty of .NET related topics.
  
  
I wonder what is your definition of developer expert if its not being able to solve under the hood problems in hours and not in days. Take the recent WPF mem leak you had on NHProf recently. This is the typical kind of under the hood problem I am talking about.
  
  
[ayende.com/.../reproducing-a-wpf-memory-leak.aspx](http://ayende.com/Blog/archive/2009/11/17/reproducing-a-wpf-memory-leak.aspx)  
  
  
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment31</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment31</guid><pubDate>Tue, 24 Nov 2009 11:28:56 GMT</pubDate></item><item><title>Ayende Rahien commented on How would you learn a new platform?</title><description>Patrick,
  
Expert according to your definition, sure. I just don't care about that.
  
Can I get good job done without spending years on a particular topic?
  
That is my criteria.
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment30</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment30</guid><pubDate>Tue, 24 Nov 2009 11:20:17 GMT</pubDate></item><item><title>Patrick Smacchia commented on How would you learn a new platform?</title><description>&gt;Or, let me rephrase that. I can learn more about specific topics, I can become an expert in WCF or another special topic like that.
  
  
It takes year to become an expert. My soft uses heavily GDI+/WindowsForm and I learn everyday since 5 years. Yesterday again I learnt some obscur win32 tricks concerning displaying a native windows. It is all a matter of productivity, now I know how it works and I'll be faster in the future.
  
  
  
&gt;I already know the basics for .Net, there isn't going to be a huge learning curve to just about any topic that I want.
  
  
I don't agree, being an expert in a .NET related fields (WPF, WCF, WindowsForm, IL...) takes long times and is highly valuable. For me an expert is someone that actually develop for months or years with a technology, not someone that reads one or two books on the subject.
  
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment29</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment29</guid><pubDate>Tue, 24 Nov 2009 08:10:57 GMT</pubDate></item><item><title>junior programmer commented on How would you learn a new platform?</title><description>i actually meant absorb in my answer
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment28</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment28</guid><pubDate>Tue, 24 Nov 2009 04:05:07 GMT</pubDate></item><item><title>junior programmer commented on How would you learn a new platform?</title><description>i don't believe in shortcuts especially in working knowledge. i think most of the concepts/underlying  (like why things are done the way they are) take time for the brain to observe and experience to see for yourself. but having someone to show you will definitely save a bit of time up front. in terms of language, why give erlang a try? isn't concurrency and functional language supposed to be the future? ^_^
  
  
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment27</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment27</guid><pubDate>Tue, 24 Nov 2009 04:03:52 GMT</pubDate></item><item><title>smurf commented on How would you learn a new platform?</title><description>java has some interesting frameworks, but i don't think, that you'll get much fun out of that language itself
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment26</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment26</guid><pubDate>Tue, 24 Nov 2009 00:53:44 GMT</pubDate></item><item><title>Ayende Rahien commented on How would you learn a new platform?</title><description>Jimmy,
  
I have done that, but most of the work is done over the net.
  
That is not really conductive for learning.
  
  
Terry,
  
Baby steps
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment25</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment25</guid><pubDate>Mon, 23 Nov 2009 22:52:26 GMT</pubDate></item><item><title>Terry commented on How would you learn a new platform?</title><description>Ayende, don't take a step back!!!!!!!!!! Java is a dinosaur language that's dying. Learn Scala instead.  j/k   :-)
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment24</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment24</guid><pubDate>Mon, 23 Nov 2009 22:06:33 GMT</pubDate></item><item><title>Jimmy Chan commented on How would you learn a new platform?</title><description>Why don't you pick a good Java developer into your team? Explain the profiler design, let them do in Java. You see, learn, and ask anything about Java to them, no need taking "boring" courses
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment23</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment23</guid><pubDate>Mon, 23 Nov 2009 21:53:10 GMT</pubDate></item><item><title>ng commented on How would you learn a new platform?</title><description>also...
  
  
[http://dddsample.sourceforge.net](http://dddsample.sourceforge.net) as far as I know was an app on which Eric Evans had a lot of input. You of course may not being doing DDD, but I still think looking through the source is a good introduction to how things are done in Java in a good way.
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment22</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment22</guid><pubDate>Mon, 23 Nov 2009 19:40:03 GMT</pubDate></item><item><title>ng commented on How would you learn a new platform?</title><description>I just came to the java world from the .NET world about 3 months ago. I'm still learning, but it really hasn't been too hard. I certainly miss a lot of the things that make .NET great - LINQ in particular - but it hasn't been too bad. I just feel like I'm programming C# 5 years ago since I have to use for loops.
  
  
A few observations:
  
  
Maven is awesome.
  
Intellij is awesome.
  
Guice has spurred Spring to make some nice advancements in its IoC container.
  
StackOverflow is your friend.
  
After checking out the various mocking frameworks I've settled on Mockito and quite like it.
  
If you use Maven, you don't have to stress out about how you'll structure things - it's very strongly suggested you do it the Maven tried and true way.
  
  
I haven't had to do much data access yet, but I'm pretty sure you could get the hang of Hibernate :)
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment21</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment21</guid><pubDate>Mon, 23 Nov 2009 19:34:11 GMT</pubDate></item><item><title>Ayende Rahien commented on How would you learn a new platform?</title><description>Patrick,
  
Because I don't think that there is value in trying to be a better .Net developer.
  
Or, let me rephrase that. I can learn more about specific topics, I can become an expert in WCF or another special topic like that.
  
That wouldn't make me a better developer, it would only give me knowledge that I would be able to acquire at the same point in time when I would need it.
  
In other words, I already know the basics for .Net, there isn't going to be a huge learning curve to just about any topic that I want.
  
Learning a new platform means that I would have to do more than learn some new API, and I find that my lack of practical experience in bothering me
  
  
Nic,
  
You are bringing some excellent suggestions to the table. However, since my problem isn't actually with design or understanding, I think that I am going to try to take an advanced Java course and hope the instructor have enough patience to explain to me how to compile/run/debug the code :-)
  
That would hopefully kill two birds in one stone
  
  
Rafal,
  
I don't actually care for what I am writing, I am more interested in the tooling experience, how to do things, what are the standard approaches for problem solving, etc.
  
  
Steve,
  
I agree with your approach, but I think it is quite time consuming. My hope is that by taking a course I can cut down on the time required to be proficient.
  
  
Andrew,
  
I will admit that I want to make the profiler cross platform. But Java FX isn't likely the way to go there.
  
  
Mihai,
  
That takes time, a course is a way to reduce that time
  
  
Phil,
  
I don't aim to be a Java expert, but I would really like to wipe that blank look off my face whenever if I want to do some Java programming.
  
  
Chuck,
  
I _know_ the language, and I am not really afraid of the API.
  
What I need to know is IDE, build tools, management, etc.
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment20</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment20</guid><pubDate>Mon, 23 Nov 2009 19:17:00 GMT</pubDate></item><item><title>Chuck commented on How would you learn a new platform?</title><description>An alternative approach is to forget about the IDE. IMO, you don't need one to get your chops. A good text editor and a web browser will do the trick just fine!
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment19</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment19</guid><pubDate>Mon, 23 Nov 2009 18:59:00 GMT</pubDate></item><item><title>Trent commented on How would you learn a new platform?</title><description>I played with Java a year or so ago.  I liked Eclipse, in that it was free and I  could find VS things occasionally.  Right now I'm learning Python and there are some great online resources.  Python is fantastic for parsing text, working with NLP, and super easy to get going right away.  I like to use books for this kind of thing, so I can skip the "create a for loop" thing.  
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment18</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment18</guid><pubDate>Mon, 23 Nov 2009 18:58:19 GMT</pubDate></item><item><title>Phil commented on How would you learn a new platform?</title><description>I agree with the comments of the first commenter (Patrick Smacchia). There are many quirks that make C# and Java different and learning both to become an expert at both in my opinion too is a bad idea. However, in addition which may not be a smart move but its best for me- I believe you should master a small section of .NET and have a background in the otherd. I work with ASP.NET and supporting tools (like ASP.NET AJAX) etc. I only know a little of WPF, WFC, Microframework, compact framework and the others. It will take me a very long time to be phenomenom at ASP.NET. Learning the other big components (like WPF) and their quirks to the extent of being great at them also will take me too much time.  
</description><link>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment17</link><guid>http://ayende.com/4303/how-would-you-learn-a-new-platform#comment17</guid><pubDate>Mon, 23 Nov 2009 17:33:07 GMT</pubDate></item></channel></rss>