Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

MySQL and PHP : valuable in resume ?

 
Rahul Sudip Bose
Ranch Hand
Posts: 637
Eclipse IDE Firefox Browser Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I was wondering if i should learn PHP and MySQL ? I had heard that MySQL is hardly used these days (please correct me if i am wrong). Would it be better to try oracle DB instead ?
Can anyone comment on the popularity and limitations of PHP ?

 
Joe Harry
Ranch Hand
Posts: 10124
3
Eclipse IDE Mac PPC Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Since now MySQL belongs to Oracle, not sure what the future will hold for it.
 
Rahul Sudip Bose
Ranch Hand
Posts: 637
Eclipse IDE Firefox Browser Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Joe Harry wrote:Since now MySQL belongs to Oracle, not sure what the future will hold for it.


I am wondering what could they do with it ? They already have oracle DB. I am making a blind guess : "my-sql will become an affordable DB for small organizations and oracle will be the bigger ones " ???

PS :was MySQL offering serious competition to Oracle before it got owned ? Is this a case of big fish quickly eating the small one before it becomes a big and formidable adversary ?
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 34839
369
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What do you mean by "learn MySQL"? Learning SQL is a valuable skill. Administering MySQL is more niche. Writing stored procedures is a good skill - the concepts translate, but the language does vary by database.
 
Kr Manish
Ranch Hand
Posts: 138
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jeanne Boyarsky wrote:What do you mean by "learn MySQL"? Learning SQL is a valuable skill. Administering MySQL is more niche. Writing stored procedures is a good skill - the concepts translate, but the language does vary by database.

Exactly.
There are so many databases with differences in syntaxes, BUT skill acquired by writing sql queries & procedures are completely transferable. Learn one and you learn them all. ORACLE or Mysql specific syntax is not important, what is important is if you can write complex queries, know about indexes about query evaluation & optimization etc. You will find all that in most databases.
 
chris webster
Bartender
Posts: 2407
33
Linux Oracle Postgres Database Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Kr Manish wrote:ORACLE or Mysql specific syntax is not important, what is important is if you can write complex queries, know about indexes about query evaluation & optimization etc. You will find all that in most databases.


As an Oracle developer, I have to respectfully disagree with you to some extent. It's true that SQL is fairly standard across databases, and also that many projects have a deliberate policy of not "tying" themselves to any proprietary extensions of SQL or platform-specific tools such as Oracle's PL/SQL. And if you're just looking at vanilla database applications with not too humungous volumes of data then you'll probably be fine with a good understanding of SQL in many cases.

But then you are no different from the thousands of other Java developers who know a bit of SQL (maybe they did a course at college) and dip into it occasionally. But if you are serious about doing serious things with serious database applications, then you will also need to get serious about understanding the relevant specialist tools, and many of these tools are specific to particular DB platforms e.g. PL/SQL on Oracle (and PostgreSQL), analytical functions, spatial data processing on different RDBMS, and so on. Even at the vanilla level, there are differences in how different platforms implement particular functions, such as optimisation, so you still need to understand the specific features of your particular platform. Understanding and using the right tools for the job can make the difference between an impossible requirement and a successful implementation.

So learning a bit of MySQL will certainly help you to acquire a basic grounding in database application development. But it certainly doesn't make you a serious database application developer, just as my 1 year of J2EE and occasional ad hoc work with Java don't make me a serious enterprise Java developer (that's why I am fortunate to be able to learn so much from the good folks here at JavaRanch ). And as a developer of any kind, you also need to have some understanding and respect for the sophisticated tools and skills required beyond your own specialism, whatever that may be.

In case it's helpful, this thread also includes a fairly detailed discussion of the potential benefits of learning a DB like MySQL.
 
chris webster
Bartender
Posts: 2407
33
Linux Oracle Postgres Database Python Scala
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
chris webster wrote:
In case it's helpful, this thread also includes a fairly detailed discussion of the potential benefits of learning a DB like MySQL.


Of course, that discussion was started by Rahul as well.

MySQL is still very widely used, but a lot of those installations are just running websites using free open source software, so they don't really offer much in the way of commercial career prospects for developers. Not sure about the prospects for the enterprise version of MySQL. I can't really see why Oracle would want to invest too much in continuing to develop a serious alternative to their own commercial databases, after all. So learning MySQL is useful as an introduction to databases, and as a free tool for exploring other open source products. But if you want to sell your shiny new database skills, you'll probably need to learn a commercial database fairly quickly instead.

As for PHP, it is very widely used, pretty easy to pick up, but is kind of clunky and does not really support structured coding practices, unlike some other scripting languages such as Python etc. Of course, you can write good code in any language, but PHP makes it a little too easy to write bad code as well!

PHP does support OO, but it's more of an extension to the language rather than a built-in characteristic of the language (as in Python, Groovy etc). And if you want to try building your own web applications with PHP, I can strongly recommend using the free open-source Zend Framework components (see this posting).

You need to ask yourself why you want to learn PHP. If you just want to learn a bit about developing web apps on the XAMP stack, then PHP/MySQL are a good combination to start with as they're easy to set up and there are lots of books etc on this combination. If you want to find out more about how common CMS frameworks work, then PHP is still a good choice as many of them are based on PHP (Mambo, Joomla, WordPress, Drupal, etc etc).

If you want to explore serious commercial web app development, then you might be better off looking at more robust and structured alternatives such as Ruby/Rails, Groovy/Grails etc. Or get really good at JavaScript which is used everywhere on the web.

If you are looking for a marketable skill, then it's kind of mixed: PHP is used all over the place so there is a lot of PHP work around, but it often tends to be used more for relatively small-scale systems and there are lots of people with low/medium skills in PHP, so PHP jobs may not pay particularly well compared to Java work for example.

And if you want a transferable skill, Python or Groovy might be a better choice, because you can use them in a lot of different contexts, whereas PHP is really restricted to the web server. Groovy is less commonly used but runs on the JVM so it allows you to take advantage of all the Java libraries, while Python is being used increasingly widely for all kinds of applications.

To give you a sense of the comparative marketability of various scripting languages, I just ran a dumb query for jobs with each of the following skills into the UK JobServe engine:

  • Groovy: 31 jobs
  • Ruby: 132 jobs
  • Python: 307 jobs
  • PHP: 632 jobs
  • JavaScript: 1569 jobs

  • Meanwhile, there are 2663 Java jobs and 641 MySQL (mostly DBA) jobs advertised currently.

    FWIW, my instinct right now would be to pick Python or JavaScript if you want to learn a marketable scripting language with good future prospects, and I can highly recommend the book Head First Python for anybody who wants to go down that route.

    But don't spend any more time agonising over the choice - just pick one and start learning it now!
     
    • Post Reply
    • Bookmark Topic Watch Topic
    • New Topic