This is part 3 in our ongoing conversation – “Advice For Ruby Beginners“.
Satish>> What opportunities exist in your country for Ruby freshers; people who know Core Ruby thoroughly?
Agnieszka (Poland)>> Companies that use Ruby and RoR are mostly happy to hire both Ruby experts and beginners. Those are usually small companies, some of them with a very agile spirit. Larger companies are mostly too conservative to adopt this technology and I don’t expect it to change soon. Now and then somebody is looking for programmers to join a startup, also investors from abroad seek Polish coders. It seems that demand for Ruby skills is on the rise and it is likely that soon companies will be looking for training from Ruby experts.
Fabio (Brazil)>> As I said before, big companies will not get into the Ruby or Rails business for the time being. I’ve been a consultant for this kind of corporations for the last 5 years and I already recognize their vices. We are also not used to have hundreds of startups, because we don’t have as many investors as in the USA. So it is very hard to start a small company here. But there are thousands of medium-class businesses that don’t care about brand: they care to have their work done with quality and within reasonable costs. That’s the market that Rails programmers will serve. As 37signals said: we don’t need to target just the Fortune 500, we have to look after the Fortune 5,000. There’s no free lunch though: most younger programmers care about having stable jobs, not playing with their favorite technologies. They don’t study because they like, but because they need the credentials to get in big companies. The kind of professionals that will try Rails, will be necessarily outside of this status quo. At least for now. Ruby/Rails developers all have an entrepreneurship spirit. They are not plain reckless, but they enjoy taking some risks. That’s people that can see what has the potential to eventually become ‘the next big thing’. We like to be independent, we don’t like tedious jobs, boring tasks, and annoying co-workers. We want to stay ahead of the competition. We are not afraid of new things, we are not afraid of becoming obsolete, we are not concerned of last year’s certifications getting old. We don’t care about having fancy business cards and using brand new ties. Current Ruby/Rails developers are the kind of people that push the whole market forward. We think different. This is not a mass market yet, so if you want the easy route, I can’t recommend this, otherwise you are very welcome. Bottom line is: there’s not an established market ready to welcome new Ruby or Rails developers, yet. You’ll have to dig further on your own. If you want to start your own company, this is a great tool to get the job done. And this is a globalized world, we can’t be limited by our own territorial boundaries. There’s plenty of jobs available in other countries and many are willing to have offshore outsourced resources. Brazil is very very compelling as an outsourcing shop. We are cheaper because of the current dollar exchange rate. A good opportunity to start working for foreign companies.
Jamie (UK)>> Well mostly you’re looking at sysadmin work, web development work, and maybe glue code work.
Jamis (USA)>> There are a lot of job opportunities for people with Rails experience. If you want to do more general work with Ruby, your options are more limited, but I found that even in my previous job (where I did Java all day) I was able to use Ruby for various tasks, like code generation and system administration. Opportunities are where you make them!
Jens (Switzerland)>> I guess most of the companies that use Ruby in Switzerland would be looking for people that know Ruby. I know I do – I could use someone with Ruby skills immediately. I’m not sure about the large companies, the banks, the insurance companies. From what I hear, they are still very much “traditional” shops (Java, dot Net) and haven’t made the switch yet to the agile scripting languages. I guess they will turn around, when for example JRuby becomes more mature.
Juanjo (Spain)>> Thanks to Rails there is a good demand for web-developers. As far as I know, if you are a good Ruby/RoR programmer, you can easily find a job in Spain. And I think soon, the big companies will start using Ruby and some colleges will start teaching Ruby so this is just the beginning.
Julian (Netherlands)>> I did talk about this in my previous reply.
Manik (India)>> As I mentioned in my last answer, there is a strong and growing demand for Ruby and Rails developers in India. There are a lot of consultant companies doing Rails development. There are a lot of product companies developing products on Rails and Ruby. If you know of some really good developers, could you ask them to send their resumes to me
Matt (Australia)>> There’s not a lot of call for pure Ruby developers, like there is for (say) Java developers. Mostly it’s “we want a sysadmin who scripts in Ruby” or developing in Rails.
Mislav (Croatia)>> A quick search for “ruby” on several popular job boards here didn’t yield anything. But I guess that companies are starting to get interested even here and that we will soon see an increase in job demand. There is always an option for freelancing in the meantime. There are also opportunities to be employed remotely in a company that might be far from you, even in the US. Hey – it’s the Internet
Ola (Sweden)>> I think the time is ripe to get the larger companies of Sweden to accept Ruby and Rails. Most of them haven’t yet, but most of them are also forward thinking, innovative and not as conservative as similar companies in other countries. I would say that spreading the message and teaching Ruby can definitely be done in Sweden right now.
Pedro (Portugal)>> I think in Portugal, the same thing applies to Ruby as for other Languages, the market is booming and for anyone dominating Ruby, work isn’t really going to be a problem. The market is actually lacking good programmers at all levels.
Peter (UK)>> In terms of job opportunities, the UK does better than most of the world, but pales in comparison to the United States where there are literally hundreds of jobs available. Ruby and Rails don’t have considerable mindshare here, and lag a long way behind technologies such as Java or .NET. I think people tend to make their own opportunities, though, and if working with Ruby and Rails gets someone excited enough to start their own Web site or consultancy business, there’s the opportunity to make money wherever you are.
Remco (Netherlands)>> There’s a lot of demand for computer specialists in the Netherlands and in the recent year this includes Ruby programmers. Rails has spawned a lot of companies in the Netherlands too. They are successfully competing which more established web application builders and a lot of these latter companies are switching there web development to Rails. No matter where you are, if web development is your trade, you should learn about Ruby and Ruby on Rails or stick with your stuff and join the ranks of Cobol programmers.
Sau (Singapore)>> Ruby is used professionally in an increasing number of small startups and consulting companies in Singapore. There are many job openings available and often posted up in the SRB Google Group.
Satish>> Any other suggestions for these participants (would-be Ruby developers)?
Agnieszka (Poland)>> Get down to work and never stop improving your skills. Develop an addiction to coding standards and automated testing. Take as much as possible from the real and virtual community, but don’t forget to give back – publish code, help answer other people’s questions, participate in events. Take your time to try out other languages, make sure you know why Ruby is your language of choice.
Fabio (Brazil)>> My recommendations usually go beyond a particular technology. Of course, the Big Thing of the hour is definitely Ruby on Rails. It is rising very fast, it’s being matured, the community is exponentially growing, tools are being refined. The market is just starting to pay attention. We have to stay updated by the minute. Learn more. Learn beyond one tool or one language. There’s been Language-Wars, Frameworks-Wars in the past, there’s been some recently. It happens not because people actually ‘like’ their old technology, but because they can’t see ahead of their noses. They are ‘afraid’ of being wrong, of change. Career people don’t like changing. They want to stay in a solid and very predictive route, a very smooth ride up the mountain slope. That’s not the reality: things eventually change. Technology changes even faster. It’s changing right now and just closing your eyes will not modify this very fact. Other people think that learning things that they can’t immediately use is waste of resources, which is not true. Education is an investment. You can only recognize its value once you need it, not before.
Jamie (UK)>> Get public with your findings, blog heavily, get known. The Ruby community is a small world, and it’s easy to spot the talented folk at a distance with a little google and a few recommendations.
Jamis (USA)>> Be passionate! If you’re only learning Ruby as a resume item, you’re doomed to fail, simply because the Ruby/Rails landscape is full of passionate programmers who will always out-perform and out-resume you. If you are truly passionate about Ruby, that passion will shine through. Be prolific! Write code. Write _lots_ of code. And don’t be afraid to throw away most of it. Just as a writer learns to write by writing, so a programmer learns to program by programming. Be social! Find (or found!) an open-source project that appeals to you, and start looking for ways to contribute to it. Nothing pushes your skills so much as having other experienced programmers that can review and critique your code, and that’s what happens when you submit a patch to a project.
Jens (Switzerland)>> Enjoy programming. Have fun. Ruby helps you with that. Get involved in the local community. And be open about languages. Ruby is but one of the many fine programming languages out there.
Juanjo (Spain)>> Write code. Try new things. Learn from others and help other people to learn. Ruby community is a small and nice one, so be a part of it and participate.
Julian (Netherlands)>> Use Ruby to break out of the old technology you have been using before. Try all the weird quirky things in it that are new to you (like meta-programming, continuations, exceptions, base class extensions) to know it better. If you have been doing languages like PHP before (this primarily applies to web developers) – take this opportunity to learn how to deploy in the real world, without the warm fuzzy feeling of an admin-tuned restricted copy of mod_php that will just destroy your program after the page is sent off. And read lots of source written by others, ultimately. Refactor and unit test mercilessly, because otherwise you might have been much better off doing Perl. And do not get too stuck in the Rails world – there’s more to Ruby than just Rails, and there are some pragmatic decisions made by David that might limit your approach to the language.
a. Strengthen the basics.
b. Write a lot of code.
c. Read though lots of existing open source applications including Rails.
d. Read a lot of blogs and stay on top of what is new and happening.
e. Try to form or join developer communities and participate in developer community events, with the aim of sharing and learning.
f. Release code to open source, because that makes you think if there is a better way of writing the same code. You would of course want to share your best code with the world! That being said, don’t wait forever to get the code in the best shape to release. Release and clearly mention the known issues.
Matt (Australia)>> Program early and program often.
Mislav (Croatia)>> Embrace good practices early and solve problems the right way. For instance, unit-testing or BDD (behaviour-driven development) is something without which most of the things in Ruby/Rails world would be unthinkable. Ensure clean separation of your modules and always know which part is responsible for what. Learn how to love the console (if you are a Windows person). If you will be working with Rails, use edge Rails (meaning the newest development version) from the start, because it is soon-to-be Rails 2.0. And, as I’ve already said, let things challenge you. Programming is not dull and “geeky” anymore; it’s creative and exciting. If you are from Croatia and need direction, feel free to email me. I’d really like our community to get stronger. Good luck!
Ola (Sweden)>> Just to keep digging. Ruby is a lovely language with depths that can take years to grasp. Just because you don’t understand a feature doesn’t mean it doesn’t have a use. Most things in Ruby are there for a reason – so keep looking.
Pedro (Portugal)>> Join online and local developers communities, that’s the fastest and easiest way to learn and share knowledge. Why not use this already existing networks as an advantage point? I think this would be my most important and humble suggestion.
Peter (UK)>> It’s easy to become frustrated when you’re working on some code (even a single line) and it doesn’t do what you expect. Rather than get frustrated, try to break your code down into the smallest pieces possible to see where the bug is occurring. Most “bugs”, I’ve found, tend to come from our own incorrect assumptions about how things work, rather than errors made by the language or the computer itself. If you break things down into tiny pieces, you can quickly find out where things aren’t working as planned and be able to tackle any tricky debugging situation!
Remco (Netherlands)>> Make DRY (Don’t Repeat Yourself) one of your mantras. Avoiding copy-and-pasting trains your Ruby muscles! On the subject of copying, don’t copy code from others without understanding it. Proper code isn’t hard to read, don’t be satisfied when it works for you but you do not know why. And finally remember: there’s no Ruby nirvana. Every Ruby developer is rediscovering Ruby on a regular basis, including Matz. People are doing amazing things with this language, finding new angles to solve problems. Be prepared to keep learning this language and enjoy the ride.
David (USA)>> I’ve learned a ton of Ruby by helping other people learn, and answering questions on mailing lists. Of course you have to be comfortable with doing this, but it can be very beneficial for you as well as the people you’re helping. Whenever someone asks a question that I can’t answer, but think I should be able to, I try to figure it out and come up with an answer. That way they get an answer, and I learn something.
Sau (Singapore)>> Join the community, start the dialog. Programming with Ruby is fun and there are plenty of people who are willing to extend a helping hand. For any queries, feel free to discuss with me personally. Send me an Email at: cssheong[at]pacific[dot]net[dot]sg
Satish>> It has been fun interacting with you all and thank you for sharing your views with the RubyLearning.com members.