We wanted to find out from practicing Oracle DBA's what it takes to be
a Oracle DBA, to get a window into a day in their life as a DBA and
have them share their experience, tips, hints and suggestions of being
a successful Oracle DBA.
We are fortunate to present accomplished,
successful Oracle database administration professionals who work with
Oracle databases day in and day out.
Introducing...
David Fitzjarrell - a seasoned Oracle DBA with over 20 years of experience, David specializes in tuning, backup and recovery, replication, installation and configuration of Oracle databases. David is very active in various Oracle forums and groups like Google's Oracle DBA Experts, dbforums, orafaq, mydatabasesupport and many, many more. David has has his own Oracle Tips. His post "What do Julius Caesar, Jacques Cassini and Pope Gregory XIII have in common? Oracle!" is a must read. He shares his experience in Oracle Tips.
Doug Burns - an Oracle 9i certified DBA, living across the pond, Doug is an Oracle consultant, DBA, Developer and Trainer. Doug has over 18 years of experience and has worked with Oracle from ver 6 through 11g. Doug is an active contributor to the UK Oracle User Group and has multiple technical papers to his credit. Doug, the trainer has developed and taught lessons in PL/SQL, performance tuning and DBA courses. Doug is a fan of the good old days when Sinclair ZX Spectrum ruled. Visit his Oracle blog.
Srinivas Ramineni - a former DBA in Oracle, Srinivas has also worked as a DBA in companies like Level 3, Citigroup and Cisco. Srinivas, an Oracle Certified Professional, specializes in Fusion Middleware, E-Business, Disaster Recovery and integration of Oracle products with 3rd party vendors. Srinivas is an active contributor to the Oracle community and logs his everyday experience in his blog Daily DBA.
Question: What is a typical day at your job?
David: I start by checking the alert logs and listener logs for the databases and servers I support. After addressing any problems I scan my email for any user requests; these range from creating user accounts, refreshing test databases with current data and tuning problem queries. I then check my monitoring software for any issues which may have occurred since I arrived (space problems, UNDO issues, etc.) In the midst of all of that activity I scan MetaLink for any potential issues which could affect my users, noting the suggested solutions for later reference. And, of course, 'spur of the moment' problems occur, and I address those as I receive them.
Doug: No two days are the same, really.
- Because I'm a contractor, no two sites are the same either. - Being a Development-focused DBA is very different to being a Production-focused DBA. - It depends whether I'm working on a specific project or not. For example, I've been working on a Grid Control and Audit Vault implementation recently which filled the days.
In fact, that's probably the hardest part of forging a career as a DBA - deciding what type of DBA you're most suited to and enjoy and finding the jobs that match. Some jobs are simply handling trouble tickets and fixing small problems all day whereas some are very project-orientated and strategic.
Question: What does it take to be a successful Oracle DBA?
David: Patience, understanding, a good knowledge of Oracle and how it functions and the willingness to learn as you go. Continually educating yourself with respect to Oracle is a must, and the ability to find information with little, if any, assistance is a key aspect of being a good DBA.
Doug: Technical knowledge and a commitment to developing that technical knowledge. Whether it's in the official job description or not, DBAs tend to be used as the fountain of all knowledge about the RDBMS so it's important that you are familiar with all aspects or know how to track down the information you don't know. It will also help you when you encounter unexpected problems.
A mature and disciplined approach to work. No DBA likes working alongside a cowboy because they create problems for the entire team. If you can't cope with sharing information and writing documentation, then stay away from my team!
Communication skills. Being a DBA means dealing with a wide range of people including end users, developers, system administrators, managers, Oracle Support people etc. It's simply not an option to be technically sound but unable to handle those relationships. You often need to fight your corner to implement improvements and the ability to persuade others is incredibly useful. You're also likely to need help from System Administrators in the middle of the night and they tend to remember how you've treated them in the past ;-)
Srinivas: Most of today's E-Business and IT applications are entirely web-based and hence the underlying databases have to be highly available 24*7. Responsibility, proactive attitude and emergency preparedness are some of the key characteristics that can make a successful Oracle DBA. IT application developers and the end-user communities rely heavily on the database administrator for their day-to-day database issues, questions and projects. An Oracle DBA should be polite and must treat every one in the organization with courtesy and respect.
Question: Has your job description evolved over time?
David: Most certainly. With Oracle 6 the main thrust was to keep the database running and available, and with minimal tools at my disposal that was a challenge. As Oracle provided more and more functionality in the database for the users and DBAs the job description changed from a strictly server-facing role to that of DBA/user liaison. It is not unusual at this point in my career to address physical database issues (storage, configuration, backup and recovery) and user/vendor requests (application tuning, query tracing, connection troubleshooting).
Doug: As management tools have improved being a DBA can (and should) be a more strategic role than it was - working on solutions to problems in advance of them appearing and rolling those solutions out across the server estate. However, that needs to be balanced against the explosion in the number of databases you're likely to be supporting so, if you're unlucky enough to find yourself that doesn't have a solid technical infrastructure in place, you can find the fire-fighting aspects as great as they ever were.
Srinivas: Yes indeed ! The definition of an Oracle DBA has a much broader scope today. I started with just "database work" in my first job. Today my responsibilities include Oracle systems design and architecture, including Oracle E-Business Suite administration, Oracle Application Server setup and administration, setting up of Continuity of Business systems (Disaster Recovery preparedness), setup and administration of Oracle Fusion Middleware components such as Oracle Portal Server, Identity Management etc. I am also expected to work on hardware specifications and requirements for upgrading existing Oracle installations or setting new ones. Whereas the traditional "Oracle DBA" designation has remained the same, it has a much wider scope and responsibility today.
Question: How do you keep up with new features and changes & advancements in database technology?
David: I keep going back to the supplied documentation from Oracle, as well as investigating features and writing examples to see how and why they work. Writing code and fixing mistakes is a great way to learn if one has the time.
Doug: Personally, I attend user group and vendor conferences. My primary resource, like most DBAs I suspect, is the internet and I find blogs increasingly useful because they deliver bite-sized information without the corporate spin but it's still good to go to a conference and immerse myself in the subject, away from the day to day work demands. Focusing on learning as a separate activity from on-the-job learning is very important to me.
Srinivas: Every major Oracle database release comes with a lot of exciting new features which can be leveraged for simplicity, automation or better database management.
a) I am an avid reader of the bi-monthly Oracle Magazine. The subscription is free and it is available online as well. The magazine covers the latest in Oracle, contains a lot of expert articles with a practical outlook to tackle business problems.
b) I have also subscribed to rss feeds in http://otn.oracle.com so that i get updated whenever there is a new knowledge based article. This a popular site for the Oracle community and most of the technology articles are posted by Oracle ACEs and Oracle ACE Directors who are proven and recognized individuals by Oracle Corporation.
c) I also recommend aspiring DBAs to register in the Official Oracle Forum , thanks to the many experts who generously contribute to this discussion board, virtually any of your database related questions can get answered here.
Question: What is the best feature you like about oracle DB, what needs improvement compared to other databases in the market?
David: I have a difficult time narrowing the field to one feature, as there are many which could be considered a 'best' feature depending upon the task. If I were hard pressed to have an answer I suppose it would be DataGuard, followed by Streams, then RMAN. I cannot think of a feature which is available in other databases which Oracle does not have, which doesn't mean there aren't any, just that I cannot think of what they might be.
Doug: Best features - Locking, concurrency and read consistency model and the instrumentation to help performance analysis (e.g. Active Session History) Needs improvement - Ease of use and software installations and patch management.
Srinivas: My favorite Oracle database feature is Real Application Clusters (RAC). Using RAC technology, Oracle databases can be setup for high availability and virtually unlimited scalability. I did not get a chance to fully evaluate other databases in the market vis-a-vis the Oracle database. Oracle is the recognized Industry leader as per various results published by market research companies such as IDC and Gartner.
Question: Has any of the Following Macro Trends affected you personally and what's your opinion?
Outsourcing & Off-shoring
Virtualization
Movement from Client-Side to Web-Based
Outsourcing & Offshoring
David: Outsourcing and offshoring can be an acceptable way to reduce administration costs, but care needs to be taken to ensure the quality of the service is acceptable to the organization. I've heard horror stories of unqualified persons holding jobs titled as 'DBA' who have done more harm than good but were hired simply because they held Oracle certifications. I've also heard stories of highly capable offshore DBAs. Cost cannot be the sole motivator for such a move, as deciding to outsource DBA duties simply to reduce overhead can cost more, in the long run, than keeping qualified persons in the job.
Doug: No significant impact, but I remember a time towards the turn of the century when off-shoring was very popular in the UK. That seems to have lessened as people experienced the difference in the quality of service. I'm sure it will put in more of an appearance again soon as these things tend to come in waves!
Srinivas: Oracle DBA is one of the few jobs that had a lesser impact by Outsourcing. A DBA is critical to the success of an IT department requiring a lot of technical understanding, emotional maturity, ability to handle pressure and crisis and one that comes with a lot of responsibility. In fact, all the Dice Reports this year show Oracle database as one of the top technology skills in the market in the USA.
Virtualization
(Note from Author: I wasn't clear by what I meant by Virtualization, was it VMWare type virtualization or was it about virtual DBA (remote DBA). The answers by our experts were on both. Apologize for the confusion, but the answers were apt regardless)
David: I have not supported databases running in virtual environments (such as VMWare) so I cannot offer an opinion.
Doug: No significant impact. I think that virtualisation in the UK Oracle market has yet to take off, but I'm sure it will in future.
Srinivas: If you meant remote service and tele-commuting? Remote Service and Tele-commuting are only for low profile work such as after-hours support etc. Most of the managers prefer Oracle DBAs to work onsite and with direct supervision.
Moving from client-server to web-based
David: It's been a boon to business in terms of customer accessibility, however it's also opened holes in the security model which can be difficult to close. Such a move requires trained, talented and detail-oriented programmers willing to go the extra mile to ensure application security and data security/integrity.
Doug: Significantly more difficulty in analysing performance problems because of connection pooling and the lack of visibility of the middle tier to a DBA. More complexity and more parts to break!
Srinivas: The Oracle DBA is usually less impacted by Client-server to Web-based migrations. Oracle databases can work with both client-server systems and web-based systems.
Question: Your advice to people who are evaluating Oracle DB administration as a career.
David: Learn all you can about Oracle; use the documentation, visit applicable newsgroups and ask about reliable and knowledgeable websites offering information. Three authors routinely publish reliable and usable information:
One additional author has provided the de facto reference for performance tuning: Cary Millsap Familiarize yourself with their work and learn all you can from them as that knowledge will serve you well in your career.
Doug: Whilst I love being a DBA and it can be financially rewarding, there's really no point in doing it unless you enjoy database technology, solving problems and dealing with other human beings. There's enough pressure and late nights for it to be a difficult job at times but because I'm essentially doing something I love, it doesn't seem that way. I'm also disappointed when I see more and more DBAs appearing on the scene who appear to have no aptitude for the job, presumably attracted by the financial rewards. So, if you like playing around with databases then being a DBA is fun, if you don't then it's just a job like any other with longer hours and more pressure in some cases, depending on the site.
Srinivas: The IT industry is facing a shortage of quality Oracle DBAs. Oracle database administration is a good career option with long-term benefits. I have been working as an Oracle database administrator since more than 6 years and the experience is very rewarding. It has also given me the confidence to work on architect and build large scale IT systems. I was able to positively impact the experience of the end-user community and positively contribute to various IT departments. I recommend all aspiring Oracle DBAs to get trained in a class atmosphere. Oracle University offers a lot of online and classroom courses in many countries across the world.
A little Adaptation of the 3 AM ad
"It's 3 a.m. and your children are safe and asleep, but there's a pager and it's ringing. Something is happening on your servers. You will decide who answers that call. Whether it's
someone who already knows the database, knows the transactions.
Someone tested and ready to lead in a dangerous world. It's 3 a.m. and
your children are safe and asleep. Who do you want answering the phone?"
For me, David, Doug or Srinivas would do. I am sure David, Doug and Srinivas, between themselves, must have seen nearly all there is to Oracle databases. Thanks guys for your time and effort in sharing your thoughts and experience with us all.
It has become fashionable nowadays to proclaim that Java has lost its
"hippness", the cool guys have moved onto other technologies. The job
market, the arbiter of whether you can earn a living or not disabuses
this notion. See Java has Grown Up and Thats Not Bad to get a perspective of how Java fares in the job market.
We at OdinJobs wanted to see what people who use it everyday feel about it. We assembled a distinguished panel of experts, an author, a software evangelist, a owner/entrepreneur, an active open source contributor, a professional who not only uses Java at work but also writes how-to's. Let me introduce them...
Jared Richardson, a big proponent of Agile methodology, is the co-author of Ship It!: A Practical Guide to Successful Software Projects. He is currently a Agile coach with 6th Sense Analytics. He can be found at Agile Artsians and at the 6th Sense blog.
Jose Sandoval is a software developer who consults on all aspects of software engineering. His clients include United Airlines, Toyota Motors, Bank of Montreal etc. He is a Math and Computer Science guy who continued onto operations management. His areas of specialization include J2EE, J2SE, Swing, J2ME etc. He can be reached at his personal website cum blog. An interesting genealogy titbit regarding Jose, the first Sandoval to set foot on the Americal continent was Gonzalo de Sandoval, a conquistador with Hernan Cortez in 1519.
Stephan Schmidt has been very active in java based open source projects. He is the project manager for Reposita. He was a founder and lead developer of SnipSnap, a java based weblog and wiki. He is the lead for Radeox, a wiki renderer. He writes about software productivity in his blog. There are some interesting posts there about java interview questions that he likes to ask.
Tareq Abed Rabbo is an expert in Spring WS. He has numerous tutorials on his blog www.jroller.com/3405691582. Anybody guessed the blog name? its OxCAFEBABE and that to java newbies is the Java class file's magic number. The first four bytes of every java class begins with 0xCAFEBABE. Tareq uses Spring and Web Services in his day job with a Telcom company.
Mark Watson, author of 14 books on AI, Java, Lisp, C++ and Windows. He Wrote Intelligent Java Applications for the Internet and Intranets way back in 1997 with Java 1.0. Mark specializes in building large scale Java server side development. He offers his projects in Natural Language Processing, Knowledge representation as GPL/LGPL. His site MarkWatson.com has interesting tools, books, training materials. He has two blogs, one for Java (his technology blog) and other for Artificial Intelligence.
Question: When and how did you get started with Java?
Jared: A long time ago. :) I was programming in C and Smalltalk before Java was around. I guess it was around 95 or 96 when I started. I was doing Java full-time in 97.
Jose: I got started when it was first released back in 1995, mostly playing around with Java Applets. However, I didn't start developing actual applications until late 1996 early 1997: I started with GUI application and transitioned into full-time J2EE (JEE, now) development around 2000.
Stephan: 1996
Tareq: At the university, I had an excellent Java teacher. We were taught Java basics and OO design: classes & interfaces, inheritance, collections and so on. I also learned other core Java technologies like RMI and Swing and discovered the dynamic aspects of the language. I experimented with all of that for a couple of years. I didn't really think that Java was hip at that moment ; it was rather the pragmatic aspects that drew me to the language such as the ease of development and the extensive standard API. All of that gave me a solid base that allowed me to approach Java EE at the beginning of my professional life.
Mark: I started at version 1.0. I wrote my first Java book ("Intelligent Java Applications for the Internet and Intranets") using version 1.0. Sun featured my site early on in java.sun.com, and paid for 2 of my open source projects to be "100% Java certified"
Question: What do you say when you hear 'Java is Slow'?
Jared: It was slow... in the '90s. These days the JIT technology is so good that you have to work hard to write faster C code. Most developers are better off letting the JIT optimize their code.
Jose: Nonsense. The comments are probably coming from new Java developers or sellers of other solutions, who don't understand the new JVM implementation. You mostly hear this comment when related to desktop applications. It is true that the performance of desktop Java apps for the first release of Swing was painfully slow, but the technology has improved. In some cases, it's hard to tell the difference from a native application and a JFC application. Of course, you now have SWT, which is closer to native widgets, but it's still a Java development environment. You can't go wrong with a Java desktop application. Java on the server side has never had that issue.
Stephan: It's up to 5x faster than scripting languages and around 20% slower than C with aprox. the same speed as object heavy C++ applications.
Tareq: Maybe that was true at some point but over the years, Java's performance has been seeing constant improvements. It takes time for any technology to attain a decent performance level and for people to get used to using it. This is natural. The numerous critical systems based on Java proves that this is not really an issue, at least for server-side systems. However, I feel that desktop Java could use some more fluidity.
Mark: Now, that is just plain wrong. I work mostly server side, and the server hotspot is very good.
Question: What type of applications, in your opinion, is Java best suited?
Jared: Java has a wide potential platform base. I'd say cross platform server side apps.
Jose: I think Java is suited for every type of application. This is not to say that Java is the hammer and everything should be treated like a nail. Not at all. However, the language is almost ubiquitous in every platform, so it's natural to think of Java as the main technology solution candidate. Finally, though, the decision to select Java as the underlying platform for any system is aided by the requirements. In some instances Java is perfectly suited, for other it's overkill. Large scale system (banking systems, for example) are well suited for the flexibility of the language, and logical breakdown of coding layers.
Stephan: Enterprise
Tareq: Obviously, Java is quite popular on the server-side. Desktop applications are not to be overlooked as there are new compelling alternatives to build them like Groovy and JavaFX. My current favorites are integration and SOA platforms and tools. Java seems to be a fertile ground to build this kind of applications.
Mark: Server side.
Question: What is your most favorite feature of Java?
Jared: JRuby. It's really great to see Java become a platform for other languages. This will extend the life of the Java language/platform for a long, long time.
Jose: I don't have a favorite feature specifically, but once you understand single inheritance you get the why of the "limitation" (as opposed to true multiple inheritance, which is messy; of course, multiple inheritance can be mimicked with interfaces). Finally, the newer "code candy" additions, as I call them, are nice features: generics, for example.
Stephan: GC
Tareq: What I like the most about Java is its openness. The Java platform hosts a wealth of thriving frameworks and emerging technologies. This gives a lot of liberty in terms of choice. It is interesting that a broad range of technologies as different and yet complementary as Spring, AspectJ and Groovy have their place in the Java world.
Mark: The JVM and Java platform. Generics are OK, and the new concurrency support is very good.
Question: What books would you recommend to a newbie? Any books for the intermediate programmer?
Jared: The Pragmatic Programmer Java Project Automation (by Mike Clark). I'm kind of fond of Ship It! but I'm a bit biased on that front.
Jose: For any level Java student (which I am one myself), I recommend the Thinking in Java series (free PDFs at MindView). Although, I prefer the second edition. As for everything else, look at the domain you will be working with and then pick a book in that particular branch. Avoid the "for dummies series," but that's just a personal preference.
Tareq: From what I see around me, many new Java programmers lack a good understanding of the basics of the language. This could be very impairing because it leads to uninformed or bad decisions. For this reason I would recommend a book dealing with the core language. "Thinking in Java" is an excellent book and the third edition is freely available on the internet. For intermediates I would recommend Rod Johnson's "J2EE without EJB". It was a very enlightening read for me and is one of my favorites.
Mark: The 5 Java books that I have written are now quite old, so I can not recommend them. I have not bought a book on Java in a while, so no suggestions.
Question: Any groups or forums that you would recommend?
Jared: Your local Java user's group! Get involved. It'll provide your next job if you let it. And try to speak at least once a year. There are tons of benefits to doing some public speaking.
Jose: Check out the Java newsgroups for specific problems. Chances are that someone out there has had the sample problem you are having. And when you post a question, the turnaround is remarkable. I never tried the face-to-face Java groups, but I would think they are useful. I find discussions with colleagues much more useful and there is always a context for discussion.
Stephan: Javablogs.com
Tareq: I usually use the official forums and groups of the technologies I'm working with. I particularly appreciate the forums of the Spring framework.
I would like to thank Jared, Jose, Stephan, Tareq and Mark for taking the time to participate in this discussion. Our readers will definitely find the discussion useful.
There has been articles like "Java becoming the new Cobol" and like this one, appearing more frequently out there. Looks like the in thing now, is to lay it on Java.
The basic argument is that Java, because it has become more stable, mature, and adopted whole-heartedly by companies, has lost its cutting edge. Its not "COOL" anymore. The frequent comparison, when predicting its imminent demise, is to compare it with Cobol.
First, Cobol is not dead, Cobol programmers actually make more than newer web languages. See my previous post Cobol - Media Reports of Its Death Greatly Exaggerated. Second, is corporate adoption bad by itself? Third, when is growing up such a bad thing.
This being a career site, I would like to point, without going into the merits of the language, the earning capability of Java. I compared Java, with .Net (I know, I know .Net is not a language but a platform). The Salary comparison graph shows a distinct difference in median salary between Java and .Net. The trend line graph shows the job openings that was advertised on the web, last year and in the first quarter of this year.
Here is the complete Java versus .Net Salary and Trend Comparison.
Play with it by changing the criteria and see what changes. I am a
little partial to Java as this site has been built using JSF + AJAX UI
from IceFaces. Our AI matching engine is built using core Java. Granted
Java has competition when it comes to building web apps, but... I will
let Ted Neward's article
in IBM Developers work make the case for why the above predictions is
akin to Thomas Malthus's dire prediction in the 18th Century.
Ruby experts tell us why they are in love with Ruby/Rails. Recently, I attended a Ruby users group in Atlanta and I was very surprised to see over 50 people attending the usergroup on a weekday evening, and nearly all of them have been active members of the usergroup for at least over a year. I could tell that they loved Ruby/Rails unlike anything I have seen in the the C++/Java community (languages I work with). The expert panel below will tell us why they are "in love" with Ruby/Rails.
Ruby Panel Experts
Satish Talim: Has over 29 years of IT experience and is a Ruby Mentor on rubyforge.org. Maintains rubylearning.com, a thorough collection of Ruby Study Notes for those who are new to the Ruby programming language and in search of a solid introduction to Ruby's concepts and constructs.
Peter Cooper: The author of of Beginning Ruby, he is a serial entrepreneur based in the north of England. He maintains Ruby Inside to not only flex his creative muscles but also to provide the Ruby community with a human-edited digest of interesting Ruby news, tricks, and tips.
Alex Wayne: He has been Using Rails since before 1.0. He is the Author of FlexImage Rails plugin. Greatly enjoy pizza, beer and other yummy things. He is the Asst. Organizer of the North Bay Area Ruby Users Group.His Ruby site.
Alex Leverington: Developer of popular GPL'd IT support tool named SimpleTicket.
Abhay Kumar: He is a data junkie and software engineer, is an active member of the Ruby development community - has presented at Rails related events, has published a Ruby Gem and works professionally with Ruby. His Blog.
Adam Williams: 3 years of experience with Ruby and 6 years of experience with Java. He made the jump from Java to full time Rails and couldn't be happier. His openSource work includes RDT, Open Sails, Radiant CMS, OFXRB , EaSSL.
Alex Kane: Alex Kane is a Software Developer who comes from a financial background and is currently consulting in New York and Tokyo. He now uses Rails to become more productive. His Website.
Adam Keys: A software developer from Dallas, TX, heâs been working on a book about Web Services and Ruby that he hopes to finish before the galaxy collapses on itself. He also writes on his weblog, The Real Adam on topics ranging from captioned cats to Ruby and microformats.
Q: If you were to start afresh, would you learn Ruby again?
Satish Talim: Definitely a *Yes* - for Ruby's simplicity, it's terse syntax, it's endless flexibility, the feeling that we can do whatever we want, whenever we need. For inexperienced programmers there's the plus side that the learning curve is very smooth. You can master the basics in a few days and grow alongside the language. In fact, Ruby can be a good entry-level language to learn and I am trying to convince the local educational authorities in Pune, India to make this a reality.
Peter Cooper: Yes. I started by becoming interested in Rails first and then learnt Ruby by osmosis, but looking back it makes much more sense to learn Ruby first and Rails afterwards. Ruby is very powerful in its own right, not just as the supporting language for a Web framework.
Alex Wayne: Absolutely.
Alex Leverington: Absolutely.
Abhay Kumar: Yes.
Adam Williams: Absolutely. Though I will say I am thankful for my experiences with other languages.
Alex Kane: Absolutely. I made the switch from Java to ruby about a year ago and haven't looked back (much). Java is a great language but it's really verbose. One Ruby is easier to implement is that there's simply less typing. I had lunch with Yukihiro Matsumoto (aka Matz; the guy who created Ruby) in Tokyo and he's a really sharp guy. It's his vision that's made Ruby so easy to work with.
Adam Keys: Definitely! Even beyond the opportunities knowing Ruby has afforded me, Ruby and the people involved with it have changed the way I develop software in a profoundly positive way. I could have learned about metaprogramming, DSLs, aesthetic and scaling elsewhere, but I don't think I would have learned it as quickly or as well as I've been able to as part of the Ruby community.
Q: What do you think is the most important feature of the Ruby language?
Satish Talim: Wow, that's a very, very hard question to answer. However, what I think I love best about Ruby is described by Yukihiro Matsumoto (Matz) "Ruby's a language that makes me productive while being fun to use." Specifically, blocks are important in Ruby. I'm always surprised by how much I can do with a method that takes a block.
Peter Cooper: The freedom that Ruby provides is very important. It's a very consistent language with a well established syntax at the base level, but if you need to you can dive in and change significant parts of how Ruby works on the fly. This power, combined with how easily you can begin building simple programs, makes it a great all-rounder language.
Alex Wayne: It's dynamism. Being able to add/remove methods, reflect on the state of objects, and use meta programming tricks is what makes ruby so powerful and fun.
Alex Leverington: Ruby has a very consistent OO methodology, syntax, and uses messaging (similar to smalltalk). This combined with the 'natural english' syntax makes code very easy to read while still being flexible enough to create complex programs.
Abhay Kumar:It is designed, from the beginning, to be object oriented and is purely so
(no wrapper classes like Java), it's dynamic, it has a great regular
expression engine (and will become even better very soon), it's intuitive
and legible (a non Ruby linguist can actually ready through source and at
least partially understand what's going on), and it has a lot of syntactic
sugar
Adam Williams: Blocks.
Alex Kane: That's a difficult question to answer. I love the fact that Ruby code is usually easy to read. It also has many of the Object Oriented features of Java but it's a dynamic language which makes it more flexible sometimes. If I had to pick the most important standard library it would be Enumerable. Take a look at it, it's really powerful but at the same time easy to use. Check out the syntax for writing a loop, it's really easy:
[1,2,3,4,5].each {|i| puts "Number #{i}"}
Adam Keys: At a language level, Ruby would not be Ruby without blocks. The way they change how you program is worth any price of admission on their own. Zooming out, I again have to note that the people around Ruby are fantastic.
Q: What Ruby forums would you recommend?
Satish Talim: Obviously the *ruby-talk forum* . It's the most active forum and you would find most of the top Ruby experts helping each other and all the newbies out there. This forum is the fastest and easiest way to learn and share knowledge. The other is my own *RubyLearning forum* for Ruby newbies. I am actively involved here, helping all the newbies with their Ruby-related problems, questions. It has a vibrant community.
Peter Cooper: Unfortunately Rubyists don't tend to congregate on forums very much. The most popular forum for discussions is the ruby-talk mailing list although there's also RailsForum.com which is very popular for Rails and Ruby developers alike.
Abhay Kumar: I wouldn't unless you count ruby-forum (which is really just the ruby-talk email list)
Adam Williams: None in particular. I tend to look for solutions when I approach unfamiliar problems, and stay connected to great folks who will tell me when something interesting is going on.
Alex Kane: I like Ruby Forum . It houses a number of ruby forums with gateways to Google groups as well.
Adam Keys: If you have the means, I think the best thing to do is to show up to a Ruby or Rails conference, whether its local or national. Establish a relationship with as many people as you can and maintain it. Without a doubt this is the best resource for getting beyond what the books can tell you.
Q: What books would you recommend to a newbie?
Satish Talim:
If you have no previous programming skill, I suggest you read Chris Pine's 'Learn to Program' book first.
Peter Cooper: If the newbie knows literally nothing about computation, algorithms or what programming even means, I'd recommend Chris Pine's "Learn to Program." It covers programming from the very first steps and uses Ruby to do it. If the newbie knows they want to use Ruby, understands at least what programming is, and perhaps has another language under his / her belt, I'd recommend my own book, "Beginning Ruby" published by Apress. I wrote the book to fill this giant hole in the market, as existing Ruby books tend to assume you know what object orientation is and so forth. In its 650 pages, Beginning Ruby takes you through everything you'd need to know about the language to feel confident to make your own way. If the newbie is really an extremely seasoned programmer who's already familiar with object orientation (possibly a Java or Python programmer) then The Ruby Way or the "Pickaxe" books are the best bet.
Alex Wayne: Pickaxe, then Agile Web Development with Rails 2nd Edition Alex Leverington: Latest edition of Pickaxe
Abhay Kumar: The Ruby Way (Hal Fulton); Pragmatic Ruby (Dave Thomas)
Adam Williams: Programming Ruby 2nd Edition.
Alex Kane: I got started with "Ruby for Rails" by David A. Black. It covers Ruby pretty well while digging in to Rails.
Adam Keys: If your background is programming, the Pickaxe is the way to go. I don't have any other books solely on the Ruby language, but I don't think you can go wrong there.If your background isn't in programming, go for The Poignant Guide. If you're a programmer, it might aggravate you.
Q: Name a programming language that you would like to learn? (if you had the time & resources, of course)
Peter Cooper: PHP, surprisingly. I find it extremely inconsistent and the syntax poor, but there's no denying how useful PHP is nowadays and how easy it is to throw together very small Web facing apps with it.
Alex Wayne: C++, Objective C Alex Leverington: Lua
Abhay Kumar: Erlang (learning/using it now) Adam Williams: Erlang. We are seeing the dawn of the concurrent world Alex Kane: I'd like to learn Erlang. It seems to have really cool process management, but I haven't had time to really get in to it yet.
Adam Keys: I would like to use Erlang on a real problem. I'd also like to get a better understanding of Haskell and OCaml. I can recognize them from a distance, but I don't yet _get it_ when it comes to those two languages.
I would like to thank the panel for sharing their thoughts with us. I am sure the answers will help everyone from a newbie with no programming experience to anyone who is looking to learn Ruby to extend their skills and, maybe, even the experienced Ruby hand can gain an insight or two.
You need to watch, Adam Keys's USS Ruby, a one act. Its Hilarious.