Ask Slashdot: Learning Dart Development? 107
First time accepted submitter gmikeska07 writes "I have no computer science degree, but I took a Java class in college and greatly enjoyed it. I have some experience with Javascript and have done some perl programming as well. I would like to learn Google's forthcoming Dart language. My question is in three parts:
a) Is there any chance that if I self-teach Dart, I can get a job in development without a CS degree, once companies begin using the language? b) Is it really worth installing Virtual Studio as per the dartlang docs, or should I wait for a dedicated IDE like the rumored 'Brightly'? Alternatively, are there any solid open development environments that are adding support? c) Do you know of any books that are out or on the way that I could buy? What programming series do you guys recommend? Hopefully I can learn in my spare time, and if I can't get a job in development I can at least have fun with it, and maybe make a few libraries for the Dart community!"
Translation (Score:2, Flamebait)
Hi. I'm a young whipper snapper who would like to learn something fresh and new with almost no user base instead of using already existing solutions that do all that I'd ever need to do and have loads of documentation and already existing user base. And instead of acknowledging that I was foolish to try using a brand new language and expect great support, I'm going to complain to everyone I come into contact with that they don't support this new language and if they were worth anything they would support it
Re: (Score:1)
Re: (Score:1)
Re: (Score:2)
Grumpy grumpy grumpy! (Score:2)
You sir, deserve teenage feet all over your lawn.
Re: (Score:3)
Coincidentally, there were. Last night.
Re: (Score:2)
Forgot to turn on the Sprinklers huh? Noob
Or, You Know, You Could NOT Be a Complete Dick (Score:5, Insightful)
Hi. I'm a young whipper snapper who would like to learn something fresh and new with almost no user base instead of using already existing solutions that do all that I'd ever need to do and have loads of documentation and already existing user base.
Alternative response: Welcome to the exciting ever changing world of software development with more tools at your disposal than you could ever hope to learn! It's great that you're interested in this brand new language. It's probably not the best to cut your teeth on if you're new to the game so be prepared for challenges in regards to lacking documentation.
And instead of acknowledging that I was foolish to try using a brand new language and expect great support, I'm going to complain to everyone I come into contact with that they don't support this new language and if they were worth anything they would support it because its by company X or uses this new paradigm Y.
You make the submitter sound like a whiny bitch ... yet all I detected in his questions were eagerness and optimism. Where did he complain? Where did demand support for this language from you? Why the hostility? You don't have to read his posts at dartlang.org you know. Christ at the end he was hoping to help build support for Dart.
Slashdot: rewards for taking an acerbic tongue to outsiders since before it was cool.
Re: (Score:2)
Re: (Score:1)
Re: (Score:2)
You make the submitter sound like a whiny bitch ... yet all I detected in his questions were eagerness and optimism. Where did he complain? Where did demand support for this language from you? Why the hostility? You don't have to read his posts at dartlang.org you know. Christ at the end he was hoping to help build support for Dart.
I'm the whiny bitch. And I'm whiny because I've seen all this before. Many of us have. It happens over and over and over. Computers should be a means to an end, but instead we keep making them a means to a means to a means to a means (recursion anyone?). Progress is fine, but what ends up happening in the computer industry is that we never are satisfied with the solutions we already have. People keep feeling the need to reinvent the wheel and few people work together, use existing solutions or think of the
Re: (Score:2)
Perhaps people want to reinvent the wheel because they think it simply can be done better?
This is evolution in progress. New things come up, some live, some die. Some old things come back with a different purpose and thrive. The field as a whole keeps getting better and more efficient, sometimes taking a step back but later pushing forward again.
If fish complained that there were too many means of propulsion and everyone had to stick with fins we'd never have evolved.
The only alternative to evolution is sta
Re: (Score:2)
You could improve the existing fish, instead of inventing new fish... why are we talking about fish?
Re: (Score:2)
Agreed. This is slashdot. It should have been a car analogy. Acceptable alternatives would involve Natalie Portman, statuary, and/or hot grits.
And I Suppose You Get to Approve Software Canon? (Score:2)
I'm the whiny bitch. And I'm whiny because I've seen all this before.
That's fine, you're free to rip apart a new language and you can bitch all you want at me or someone who's been in this field for longer than a decade. But when a new guy shows up eager to learn and in so many words you tell him to GTFO for selecting a new language that you haven't personally canonized as worthy that's where I'm going to set my foot down. He could be looking to program Visual Basic and your response would still be worse than gently guiding him toward a more fruitful endeavor.
I'm not
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Having played with it, it is very similar to Java's Groovy in alot of ways but the compil
Re: (Score:2)
Have you tried GWT [google.com]? Basically, you code in Java and it compiles it to JavaScript. There are other languages that cross-compile into JavaScript, too.
Re: (Score:1)
Re: (Score:1)
Re: (Score:1)
Re: (Score:3)
You see, the point is that there's no real point in wanti
Re: (Score:2)
(posting to undo error in moderation... grr).
Exactly.
You can go to a tradeschool and do one of their "Computer programming in Java" courses and graduate into a job doing Java programming. Or you can do Computer Science or Computer Engineering at a college or university, who may have a "standard language" but is really just to facilitate learning. Along the way other languages will be taught and written in the course of a semester - so you only have a couple of weeks to learn it and become proficient enough
Re: (Score:2)
To stay young requires unceasing cultivation of the ability to unlearn old falsehoods.
Lazarus Long, aka Robert Heinlien
Possibly my favorite quote as I grow older. You on the other hand Sir are embracing the geriatric
Dart (Score:5, Funny)
>Is there any chance that if I self-teach Dart, I can get a job in development without a CS degree, once companies begin using the language?
Sure, if you have ten years proven commercial experience with it.
Re: (Score:2)
*guffaw*
Reminds me of a job posting I once saw which listed as a requirement having 5-7 years professional experience with a technology that had existed for two years at the time. Ah, the good old days...
To the OP: Yes, you can gradually squeeze your way in to the field using knowledge instead of a degree, but it will probably be faster to just get the degree. While you're getting the degree you can be doing work on the side with your favorite language, so you end up with both a degree AND experience. Both
Programming languages are not real selling points. (Score:2, Insightful)
Learn to program first. The language is irrelevant (But as a previous comment states, try to go for things that are actually in use). Knowing a specific language won't do much for you. Selling yourself as someone who knows a specific language only limits you. You had better be prepared to use any language out there, know it or not.
Re: (Score:2)
It's hard to slip past the HR filter without listing programming languages on your resume. Once you get to your interview then tell them how awesome you are and you don't even need a language - you can program anything!
Re: (Score:2)
And once you do learn to program, there will be more than 3 Dart programmers in the world and maybe even a book you can buy!
Options and Advice (Score:3)
a) Is there any chance that if I self-teach Dart, I can get a job in development without a CS degree, once companies begin using the language?
Assuming you have a technical degree/bachelor of science I don't see why not. The biggest problem I see is going to be that I've never encountered a job where I didn't also need to know stuff about the back end and databases. I've always developed on all fronts of a project and I'm not sure where you would go to just do Dart development and not also some webservice or controller or MVC style design. And that's where you'll get blindsided is you probably aren't familiar with MVC design or database queries. Who knows though? I've interviewed a Mechanical Engineer and brought them on to do requirements back when we did waterfall.
b) Is it really worth installing Virtual Studio as per the dartlang docs, or should I wait for a dedicated IDE like the rumored 'Brightly'? Alternatively, are there any solid open development environments that are adding support?
I'm guessing from this [google.com] that your best bet is this if you're a minimalist kind of person (like me) [dartwatch.com] or this if you're familiar with the behemoth Eclipse [dartwatch.com]. You'll probably find yourself repeating that process after filing bugs until there is a stable release though ...
c) Do you know of any books that are out or on the way that I could buy?
This language was announced in September. At some point (four or five months?) a "rough cuts" of a book will probably be available on Safari books.
What programming series do you guys recommend?
I'm partial to Pragmatic Programmer, O'Reilly and No Starch in that order. APress might be worth a mention but personally I steer clear of Packt and Wrox. I've done some reviews on this site and I think that my reviewing reflects this.
Hopefully I can learn in my spare time, and if I can't get a job in development I can at least have fun with it, and maybe make a few libraries for the Dart community!
Stay active on the dartlang.org Google group and shout out if you get stuck. Good luck and have fun!
I'm guessing you don't have any programming experience on your resume. If you really want that programming job, I'd set goals for myself to complete a project in dart on my own so that I have at least something to show a prospective employer that shows some capability and (more importantly) self-motivation.
Re: (Score:2)
While I don't have any Packt books, the books that I have received from Wrox have been pretty good. In fact my "go to" book for C++ was by Ivor Horton and was published by Wrox (I think it was published around 2000). He pretty much left no stone unturned, had some pretty good tips & tricks, covered plenty of gotchas, and did a good job of explaining it all. I also picked up a book on Access that was pretty good too. Maybe you have just had some bad books or maybe I
Re: (Score:2)
While I'm not the person you were responding to (nor am I hiring anyone or an expert in resumes), but if you are submitting a resume that is scaring potential employers off, you're doing it wrong.
You should have a resume that tailors your experience to exactly what the hiring company is looking to hire. I'm not saying to lie or anything like that, but if they are looking for someone with programming experience, hilight the programming aspect of your career (languages, libraries, savings in time or money),
Re: (Score:2)
I feel that I have done this. I have put the team player angle in there. I have put what experience I have had doing SW and some embedded SW in there too. I have had a few calls from HR, but I seem to get hung up between the HR and Technical Manager hand off [1]. The question that I am getting most recently is whe
Re: (Score:2)
Some of the most useful programming books I've owned were from Wrox, especially on C++. Their extra effort to address programming in practice can be very helpful to someone who needs to get stuff done. (If I needed a regurgitation of the spec, I'd just read the spec.)
I rarely avoid books based on their publisher. Instead I look for books that are reviewed favorably by many people. And I look for reviews that tend to indicate that the book is the style and level that I'm looking for. Of course there a
Wait and see (Score:2)
You may want to "wait and see" if Dart takes off first. (I don't think it will.)
It seems like developers are becoming increasingly skeptical of adopting Google technologies, and for good reason. Those technologies often don't take off. Also, Google tends to hype some technologies, getting a lot of developers on board, and then abandon them (or support them so badly they may as well be abandoned).
There are a lot of great technologies out there you can learn instead, that have wider industry acceptance, and a
Re: (Score:2)
Agreed, if you want to get a job learn .NET.
If you want to learn Dart, then right now it'll be for fun and learning, so just get on with it.
Re: (Score:2)
Yes...Google being the lesser offender of all when you consider those like Microsoft's Silverlight, eh?
Re: (Score:2)
Re: (Score:2)
Ye, but you did not have to pay thousands of dollars to get certified to use Googgle buzz, now did you,
Re: (Score:2)
Re: (Score:2)
mmmmmm....dont know about that one, when was the last time you tried to use flash inside of visual studio to create your web page...
Re: (Score:2)
Re: (Score:2)
Outside yes, but Silverlight is INSIDE...
Re: (Score:2)
Why not learn a real languange? (Score:2)
Dart may be the new hot turd on the block, but no one uses it, and probably no one will for some time to come, languages take time to pick up speed and mature.
If you're a decent programmer applying to a job that isn't going to suck, they won't care about what languages you know. Part of being a good programmer is learning any new language by yourself, very quickly. If you want to lean a nice easy language that is actually useful, my personal pref. is python, but perl, js, ruby, etc are all good. If you w
Re: (Score:2)
I would highly recommend taking some classes, not so much for the programming (although it'll help), but to learn about algorithm design and computer architecture, especially if you don't want to just build websites your whole life like a chump (no offense to website builders, I do some of it too, I just hope not to forever).
I would like to strongly second this. As a software developer with almost a decade of experience without a CS degree I think I have a unique perspective. The things I am missing are things like the theory of how object orientated development works, I learnt this as I went but since these key principles needed to do my job it would have been much easier to start with them.
How each language implements the key principles always seems to differ slightly but there is an underlying core of theory and this is what
Re: (Score:2)
make a console calculator
import sys
print eval(sys.argv[1])
Re: (Score:3)
Seconded. Learn classic algorithms and data structures. Learn how to evaluate the efficiency of algorithms and data structures so you can develop your own with some hope that the end result will fit the problem at hand.
Languages are tools and are analogous to pencils in math. Don't waste your time learning how to operate a brand new design of pencil that is so complicated that its own designers haven't yet figured out how to use it well enough to write a user manual for it. Learn what you should be writ
Re: (Score:2)
But first, learn how to program, which is entirely orthogonal to learning a language to do it in.
This! By golly, that hits the ol' nail right on its head.
When we interview candidates for programming jobs we use physical metaphors, pseudo-code, and/or whatever language the candidate is comfortable brainstorming in. Most of our team has programmed in eleventy-seven different languages over the years anyway, and picking up the ones we use in our products is a matter of a few days for someone who knows how to program.
Discourage (Score:2, Insightful)
As someone who has been a hiring manager...
If I have a choice between a person with a degree and one who is self taught, I would always choose the person with the degree. If I have the choice between no one and someone who is self taught - I will wait for another person to come along. I suspect it will be hard to get a real programming job if you are only self taught. There are a lot of elements to a computer science discipline beyond just knowing a language, and hiring managers look for those skills.
Re: (Score:1)
My own start in the world of CS was by messing around with some random C programs doing relatively simple things. Over time that grew more complex and I started reading from programming books. But then I got into college and studied Computer Science. It taught me concepts I NEVER would've learned on my own.
People who are self taught have motivation. That's a big plus. The big downside is that they sometimes are click-monkeys who only know the tools they played with, but don't unders
Re: (Score:1)
Some fresh young grads will understand concepts but not have experience with the industry tools. That's not the worst case and I don't ding them too much during the interview in those cases.
What I won't accept is when someone can't understand basic concepts, despite showing a number of years using software tool X. Can't stand those guys. Those are the people that took a Saturday cou
Re: (Score:2)
When you are self taught you often teach yourself to do it wrong, and make the wrong assumptions while you are learning.
Here are some self taught developers misconceptions that are common, that are cured by a few years of computer science.
1. Less lines of code the faster the program will run. This is false some algorithms that take more lines of code actually improve speed. While there may be more code the logic allows for less looping of data.
2. Language x is the ultimate langue, if I can code in this the
Re: (Score:2)
I would attribute all four of these to lack of experience, not to a lack of a degree.
Re: (Score:2)
No experience has shown me that people without degrees make those mistakes even after having a lot of experience. The degree program does what experice wont do... Tell students that they are wrong. Professional won't tell people they are wrong they may fire him or not promote him, but not give him a failing grade for doing it wrong.
Re: (Score:2)
As a self-taught individual who makes 6 figures programming and who's hired a few, I'd have to disagree. Self-taught developers I've hired know that in the real-world, development is not about programming as an art. It's about using software to solve problems and make money.
Because kids, software is either about money or masturbation. The guy experimenting with Ocaml is about the latter. The other guy trying to get the feature done for the customer demo on Monday morning is about the former. I hire that guy
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I second a previous poster's recommendation that you (the OP) learn ASP.NET. In my area, there are whole recruitment companies that do nothing but place ASP.NET developers, and demand for them outpaces supply. Microsoft has created a very successful eco
Re: (Score:2)
Learn something useful. Not Dart. (Score:2)
Google is famous for its short attention span when it comes to new projects, after which Dart will be an orphan. Microsoft is famous for screwing its developer base and abandoning languages and the customers who depend on them (VB6, J#, and soon, .net) whenever some 20-something new manager gets a brainwave. I'd stick with cross platform c-form languages like java, c, c++, javascript, or even C#. The money's in languages like these, not the also-ran languages like Ruby, Python, Ocaml, etc.
Re: (Score:2)
And I'd hardly call Ruby and Python "also-rans". They aren't used a lot in "Enterprise" software but they're still very popular, especially for web backends.
Who knows what "enterprise" is supposed to mean, but you may actually be surprised by how often both Ruby and Python are used for professional projects. For example, I don't think much public-facing code at Google is written in Python, but a ton of their internal-use tools are.
Re: (Score:2)
I'd stick with cross platform c-form languages like java, c, c++, javascript, or even C#.
+1. I'd also throw in PHP & MySQL.
It doesn't matter (Score:1)
"You are not defined by your chosen software stack: I recently asked via Twitter what young engineers wanted to know about careers. Many asked how to know what programming language or stack to study. It doesn’t matter. There you go [slashdot.org]."
Don't listen to the haters (Score:2)
Learn any language and learn many languages. Learn SQL, NoSQL and general database design. You will get a good job. It may take a few years, but if you can do these things reasonably well (learn and use languages, use databases), you will always be able to get a job.
My one semester of C++ and networking classes at a junior college has gotten me further than my hoity-toity university Marketing Degree. But it's the fancy university degree that gets me past the HR trash can. So having a degree of any kind
Stick with Java (Score:2)
Re: (Score:2)
I'd add that my impression of Java has always been that it's a fairly pedantic and unforgiving language to code in ... which, for a noob, is probably a good thing.
Re: (Score:2)
Re: (Score:2)
Wait for "Go" (Score:2)
When will they learn?
According to HR (Score:2)
According to HR, you should already have 3-4 years of experience with it NOW. Good luck.
new languages (Score:2)
The purpose of Dart is fundamentally to create a language which is easier to optimize from the browser perspective against. It is taking stuff out of Javascript. So the early community are going to be people who know Javascript, but are more focused on the sorts of low level C programmers that write high performance interpreters. They are going to love having a junior level guy to test their ideas with if you hang out with them, and identify yourself as such. You will likely learn a lot from these exp
Re: (Score:2)
Whatever happened to learning plain ol' C?
Learn C, and you should have no trouble at all picking up C++, C#, Objective-C, or even Java. But like everybody else says, immerse yourself in the concepts first -- and personally I don't think "object orientation" is a really fundamental concept that developers need to learn up front, though that might just be my bias from being an Old Guy.
Try the Alpha IDE (Score:1)