Forum Moderators: phranque
The Web is dominated by so many acronyms, how do you learn what you need to be studying or catching up with?
How much is too much?
I'd like to learn Flash, but I have CSS, XHTML and XML to master (or XML to get to). Not to mention I'm in the process of learning PHP and SQL. How do you not become scatterbrained with all of this?
Should one just focus a certain technology like < Flash > or < XHTML, CSS and XML > and then subcontract the rest? I constantly find myself learning one subject, then feel like I'm wasting time and jump to another technology during the course of an afternoon.
How can you stay up to date without spreading yourself too thin?
Then there's the domain-specific expert knowledge: what works, the browser landscape, html and css support, connection speeds, internet marketing, etc. The only way to pick these up is through experience.
Regarding individual technologies: XHTML, Flash etc, I never learn a technology for its own sake, I just pick up new skills when I need them for a particular project/application. Of course, this requires a certain amount of knowledge (gleaned from dev sites, forums, lists etc) about new technologies and what they do... ;)
So I haven't "learnt" xhtml (as it appears to be completely pointless), but I have looked at xhtml enough to reach this conclusion :)
Personally, I work with all of the things you mention and it's not that bad keeping up with them. Sure, there's a lot to learn and I'm still learning the more involved stuff but I don't think it's overwhelming. It was when I was in your shoes though. I've just whittled away at it over the past 2 years and am now reasonably proficient.
Where to focus? Specializing in one field I think will paint you into a corner. Have at least 2 or 3 skills you can sell. Flash is great if you like to play but realize its limits and use it where appropriate.
If you're going to work on your own websites then I think it's imperative that you learn all of the skills you mention - and then some. They will serve you well as you move forward. Even if you sub-contract out the work to get PHP/MySQL work done - having the knowledge of how it works and how to revue and analyze the code that's been written for you will be a big help in the long run.
XHTML
CSS
PHP
MySQL
These 4 will keep you busy full-time for a couple of years.
Learning these 4 so that you are an expert will be the rock solid basis from which you can go out into the world. They work very well together and support one another as a whole much stronger than the individual parts.
A little JavaScript is good, but not necessary.
Then start playing around with other things that interest you like Flash and XML etc
Of course your going to have to get a domain name and a hosting account to really do it right.
I think it depends upon what you want to do after you 'grow up.'
It's difficult to know what's going to be working on the Web when I grow up :) I guess you just have to straddle the fence with all of these in a bag.
TheWebographer- That's a good strategy. This is really basically what I've been up to, but I've been blindsided by Flash and having been told 'JSP beans' and a Java database is more appropriate for the Web than PHP/MySQL.
I too think the best way to acquire these skills is to simply use them in real world projects.
Thanks for your thoughts...
It's good to be familiar with everything - you don't know where the next paycheck will take you - but it's better to be really good at something rather than mediocre at everything.
ASP,PhP,ColdFusion,JSP all pretty much do the same thing - server scripting for dynamic/interactive web sites. Pick one you like and learn it.
CSS, JavaScript and SQL are included in all of the above, so you will need to get a working knowledge of each of those.
Flash, XHTML, Soap,etc. don't interest me at this time. Perhaps later I will need to learn them, but for now I don't need to take my time away from other learning. Flash was fun a few years back, but I don't see its usefulness anymore.
I've been ... told 'JSP beans' and a Java database is more appropriate for the Web than PHP/MySQL.
JSP and Java beans are part of the J2EE (Java 2 platform Enterprise Edition) framework. Java web apps generally have a bigger development overhead than the server-side scripting languages (PHP, ASP, CF etc) - ie take longer to code - but provide more dev. features/facilities. J2EE will usually require a more powerful server (slightly wild generalisation there ;)). However, Java is a very nice OO language, and popular with developers.
For most web sites using J2EE is overkill, since all these technologies are just taking the same http requests, hitting databases, processing data and spitting the same html text back to the user - it's really not that complicated :) IMHO J2EE is more suitable for v.large, complex sites.
You can use any database with Java, you just need the appropriate jdbc or odbc driver. Some folks see MySQL as not a "proper" RDBMS compared to Oracle, PostgreSQL and MS SQL Server etc, but it is fine for light- to medium-traffic web sites.
JavaServer Pages by themselves do not need to take full advantage of the entire J2EE suite. There is a J2SE implementation which is much simpler. In fact, the whole new ".NET" by Microsoft is very similar to JSP. Their new language "C#" is really a pirate of Java.
With JSP the only additional layer you need to a webserver would be some type of application server. Tomcat is provided free of charge from the Apache folks and works great.
I've used both JSP and ASP, and actually prefer JSP, but haven't had the time to sit and fully learn it. One day perhaps.
As to the "realness" of mySQL, read this quote taken from Cox Communications (the large cable company):
Cox's MySQL application pulls data from over 1.2 million cable modems, keeping a 30-day snapshot of the data. It runs across 27 collection servers with over 3,600 MySQL tables. MySQL's replication feature is used to keep four copies of the database distributed across several large servers. The MySQL application currently has over 2 billion rows doing about 4 million inserts every two hours.
That's pretty good for "not a proper" database. Plus, the price is right also. I can't say enough good things about mySQL.
With JSP you can do incredible things with your website using the entire Java language in the back, or you can simple connect to a database and show records.
Java Server Pages = Java version of ASP / PHP. Nothing extra needed server side, just the JSP Apache mod.
Hmmm... strictly speaking JSP is an extension of, and runs on the server as, Java Servlets. Servlets are platform-independent, Java server-side modules - in other words there is at least one additional layer of abstraction (the JVM), as well as the App Server.
Haven't heard about "JSP Apache mod" but I remember reading a few months ago that JSP was roadmapped to become more script-like and easier to use. I'd be interested to know if this has happened(?)
Regarding MySQL not being a "proper" RDBMS, I hasten to add that I don't hold such inflammatory opinions ;) I know MySQL can now do transactions, row-level locking and foreign keys (via InnoDB*) but triggers and stored procedures are not available (yet).
* "Technically, InnoDB is a complete database backend placed under MySQL" - mysql.com
YES. if you want to become competitive in your market learn it, it is just as improtant as all the scripting languages. plus it is alot easier to learn than most other things.
one thing to note is that most designers use flash in the wrong manner. think of it as a color in your color pallete. would you paint your whole site orange or just use orange where appropriate? the answer is, use orange where appropriate. so many flashers, as i call them, tend to forget about how effective simple sites are. do not become a flasher, but learn flash and most importantly learn how to use it effectivley.
Now going wildly off-topic... :)
I was impressed by your quote, so delved a bit deeper. I've just found the press release your quote came from. It's important to note that this is a data warehousing application.
Data warehouses are usually copies of live data, restructured to enhance select query performance. The Cox app runs a 3 hour batch update overnight, where presumably all the updating is going on (input data tables exported/transformed into output data tables). So table-level locking is probably not a performance-limiter in this scenario. Still v.impressive though :)
A busy website with multiple users editing data concurrently will find this is MySQL's bottleneck. Table-level locking means only one user at a time can modify data in a table. Row-level locking allows many users to update (different) rows in the same table concurrently - essential for large, bursty websites.
AIUI, php is compiled into Apache. I think php pages run in process as part of the webserver, so it's very fast.
A jsp page gets passed from Apache to Tomcat, gets compiled the first time into a servlet then runs as a servlet, using Tomcat as a servlet container and a JVM to compile and execute, and presumably passes the response back to Apache.
All other things being equal, the more layers of abstraction, the bigger the perfomance hit.
Interesting topic, though Madcat is prob. now more daunted than before he asked the question :)
I think PHP uses SAPI to pass data to an external library which does all of the interpreting, then the data is passed back to the server as markup (but I could be mistaken). I have personally never used PHP or JSP/Jakarta/Tomcat, but in browsing a couple different sites that use them I haven't seen any proformance differences that were noteworthy (except the JSP site was broken a couple times, but I assumed it was a coding problem and not a server problem).
Here are some benchmarks qualified by the statement;
"First, these benchmarks are 'toy' benchmarks. To fully compare Resin to other servlet engines or Perl or PHP, you need to write your full application in both languages and compare the two. These benchmarks are only a starting point and should be taken with a grain of skepticism.":
[caucho.com...]
Poor madcat, hehehe, asks for clarification and gets this...but then again, we are webmasters...geek is in our blood. ;D
Jordan