What languages Should I learn this summer?

Status
Not open for further replies.
Kbessinger, Uplinked,

Let's not highjack the OP's thread. The merits or lack thereof Ruby for web development is a topic for another thread.
 


Shiiiit.. I can't count the languages I have coded in (well.. I can... a dozen or so.. I am just too lazy)

The real skill behind coding is thinking in algorithms, problem definition, problem solving, and creative thinking. Add domain knowledge (no, not internet domains, but a knowledge domain like cooking, psychology or Internet Marketing) and you are golden.

When computers started to be moved into the schools, scientists thought it was the complex syntax that kept kids from learning how to program.

Thus, BASIC was developed. (Beginners All-Purpose Symbolic Instruction Code)
Being able to read the code like normal sentences should enable programming.

Turned out, that was not the case - and no, GOTO is not to blame, it was not included in the first versions of BASIC -the underlying problem was the thinking process you need to learn in order to program succesfully.

As for the folly of literal programming, try coding in PASCAL - ya can read and learn the fucker in no time, but making it do anything requires a novel.

But here is the good news:
As others have mentioned, once you have learned HOW to program, the language is just learning a new syntax and maybe a few new tricks (Objects, classes, functional programming...) It becomes much more an abstract meta-level thing.

So if you are looking for a language to do Internet Stuff(tm) with, learn PHP and MySQL, maybe Ruby.

::emp::
 
If this is to code your own stuff learn PHP/JS/(My)Sql. After you have a couple months under your belt, learn Python. But only use python enough to realize how crappy of a language PHP is and that it's really the framework that is called PHP that makes it useful enough that you're almost able to ignore its crappiness. Then go back to using PHP almost exclusively but with the knowledge that you're using a shitty but very useful "language".

If your intention is to someday work for corporate dickheads and work in a cubicle next to someone who gets 2 or 3 mentions a year on the dailywtf then learn c/c++, Java or .NET...or if you need to do heavy duty processing where speed is key.

Or you could just pay Indians $3 on DP to write you a Myspace clone.
 
In my opinion the AMP (Apache, MySQL, PHP) route is usually the way to go if you're not intending on setting up your own server software, as most hosting providers come preconfigured for it. You'd need a bit more to get ruby on rails support or Python support, and in some cases unless you got your own VPS or Dedi, the options for ruby, python, etc rarely exist.

But thats primarily if you're looking for a *quick* web solution.
 
The most important thing is to learn a back-end (server-side) language. As much as I personally love .NET, for learning a web language for affiliate marketing, PHP is the way to go.

PHP is extremely straightforward -- you embed code into a web page. Fundamentally, it's still just a web page. Other back-end languages (and here I mean the managed languages -- C#, VB.NET and Java -- and the CGI languages, like perl and Python) use a different model, where you develop an application that outputs a web page, rather than just developing a web page directly. While it has its uses (and I do use them), I think it's harder to learn for a beginner. Also, PHP's online documentation is excellent, and it's supported by every web hosting provider, no matter how cheap. .NET requires a Windows webhost, which usually means paying a lot more.

You'll also want some familiarity with SQL, so you can use MySQL and phpMyAdmin to deal with databases. Likewise with JavaScript -- be familiar enough with it to attach events to web pages (e.g. color-changing buttons), but for serious JS you can usually just find somebody else's code or AJAX toolkit and copy that, rather than becoming a JS master yourself.

I would skip ColdFusion. Not that it's bad, but it does basically the same thing as PHP, while being supported by very few hosting providers. If you learn PHP, you don't need CF at all.

Ruby on Rails is pretty interesting if you're developing a serious content site from scratch. However, if you're just making landing pages and blogs and such -- things you can use an off-the-shelf CMS for -- it's not worth it to learn Rails.
 
Learn HTML and CSS first. You can teach yourself those things to a point of competence in like a week and every web project you'll do will require the knowledge of these anyways so give yourself an early morale boost and start with them.

Then, before you go spend money on learning PHP, follow this video series: In the Woods - Diving into PHP: Video Series

It's free and videos are always a nice way to learn new shit.

Once you've learned PHP and HTML/CSS, start learning JQuery to begin making things more fancy.

Don't learn ColdFusion, learn PHP. If you like programming once you've started learning PHP, move on to either Python or Ruby. I do some Rails programming, it's very cool once you learn how Rails works and stop trying to overpower it and instead follow the conventions the framework sets for itself.
 
Yea, when I was really young (elementary school age, so idk maybe 10 years old?) I taught myself BASIC and built a few text based games and shit. I already know HTML and CSS, and I know enough PHP tricks to tweak wordpress into doing the shit I want it to do. Its just that after looking at the code some of you guys put out, it's kind of daunting looking at all of this stuff and realizing I have no idea wtf it does... Hard to explain, but I do look forward to learning PHP/MySQL and JS this summer. It's just going to be difficult, because last summer I was a freelance web designer, so I kind of convinced myself I'm not a coder. Time to reverse that shit :)
 
Yea, when I was really young (elementary school age, so idk maybe 10 years old?) I taught myself BASIC and built a few text based games and shit. I already know HTML and CSS, and I know enough PHP tricks to tweak wordpress into doing the shit I want it to do. Its just that after looking at the code some of you guys put out, it's kind of daunting looking at all of this stuff and realizing I have no idea wtf it does... Hard to explain, but I do look forward to learning PHP/MySQL and JS this summer. It's just going to be difficult, because last summer I was a freelance web designer, so I kind of convinced myself I'm not a coder. Time to reverse that shit :)


I start around 12 or so.

Tandy PC-6 (lil pocket computer looked like a calculator)
- Learned it's simple BASIC Language as well as it's Assembler

My first PC 486/25mhz
- Learned QBasic 1.1 (came with DOS 5.0)
- Learned QuickBasic 4.5
- Learn Visual Basic 1.0 (DOS)
- Learn C++ (Borland C++ for DOS then later 4.5 for Windows 3.1)
- Learned Pascal (Via Borland)
My neighbor was a developer so he had some of this stuff available

I later Picked up Visual Basic 3, then couple years later an adult friend got me VB6. Also managed to get Borland C++ Builder and Delphi (which I was more comfortable with cuz I liked the C++ language) when I first got internet.

Course my high school luckily had a C++ program by the time I was in my junior year except between myself and a friend of mine we already knew the coursework so we basically researched new materials, taught it to the instructor and he taught it to the rest of the class.

By the time I was 19 I got hired by a small web firm that dealt with business web applications with the state of north carolina (NC ESC LMI : North Carolina Employment Security Commision Labor Marketing and Information) being their main client. I was pretty much given 6 months to grasp the following as my first time dealing with web technology beyound basic HTML
- Visual Interdev using Active Server Pages
- Visual Basic 6 Pro with emphasis on ActiveX control development
- Visual C++ 6 with emphasis on ActiveX dll development
- IIS server
- Microsoft SQL Server and Oracle
which lead to working on websaras.org 99% of the time before the company went under shortly after 9-11 (The state decided most of their state employed team could handle the project from there).

After that I got into PhP/MySQL cuz it seemed wasn't very affordable to have windows based hosting at the time, and I ended up liking PHP's structure better than ASP, even though I couldn't easily incorporate compiled libraries like I did with ASP+ActiveX. And few years back I figured it was just as important to know xhtml/css/js as it was to know a server side language.

I guess if there was a web language currently that closely resembled C++ that didn't require a complete application server, I'd be at home. I'm looking into either Perl or Python, but seems perl may be easier to implement into nginx as well as apache.

But as others have said before, once you got the mentality down (be it OOP or Procedural), you can usually pick up another language with just a matter of understanding the syntax changes as well as restrictions.
 
But only use python enough to realize how crappy of a language PHP is and that it's really the framework that is called PHP that makes it useful enough that you're almost able to ignore its crappiness.


Do not call PHP a framework. Ever. And as someone who writes both Python and PHP, calling PHP a crap language is beyond stupid.


Different tools for different jobs.
 
Do not call PHP a framework. Ever. And as someone who writes both Python and PHP, calling PHP a crap language is beyond stupid.

A typical install of PHP has thousands of builtin functions, most oriented towards the internet or web. All the HTTP stuff is abstracted away and handled internally(post, get, cookies, etc, we've grown to think this is a normal part of a language these days).

Sterling Hughes, one of the core developers once called PHP a framework on his old blog(which isn't up anymore) and compared it to .NET. His conclusion was basically that PHP sucked compared to .NET but he chose his words more delicately given that he is a core developer.

Just because it's mostly procedural and not MVC or buzzword compliant does not mean it's not a framework.

Rails and its clones do not define what a framework is, they are just specific types of a newer breed of frameworks, and are higher level.


As for PHP, the language, being sucky:

PHP doesn't have anonymous functions(although it has a builtin function for it like it does everything else which works crappily and gives headaches), closures , namespaces(PHP6 will/does I think), module support, and it has such a limited syntax that it makes writing code in it akin to fucking in a straight jacket.

You can't really do shit with the syntax and constructs of the language itself, compared to other languages, you have to rely on functions to do almost everything.

Wouldn't it be nice to do this:

doSomething(explode(',' $line)[1])

instead of:

$list = explode(',' $line);
doSomething($list[1])

OR

list(, $second, ) = explode(',' $line);
doSomething($second)

OR some other cumbersome combination of functions(yeah i know list() is really a construct)



Hell in Javascript you could do this:

doSomething(line.split(',')[1]);

In python you could do the same or even make a slice of the returned object by using only a few more characters.

In javascript you could make doSomething a self executing anonymous function or make a new split function that is a closure, or a closure that just uses the split method of the string object.


Besides being dynamically typed(something obviously not too unique to PHP), what about the language of PHP is cool?

I guess it depends if you count all the builtin functions as being part of the language. This is probably something that's debatable. I really don't think of all the functions as being part of the language, especially since most of them aren't even implemented in PHP, they're implemented in C.

PHP has a good library and automatic internal handling for building web apps, which you could call a web framework, as many people do.
 
im a fan of .net personally. all the open source heads can't complain now that there's mono etc.

C# is where its at imo for most normal software. if you wanna start getting into real high performance computing and shit there's another story -- vector based functional languages ftw, but thats not usually up the affiliate marketing alley ;)

.net is great for in house software but if you are going to distribute it you will probably want something that isn't .net framework dependent. Having to get people to download and run .net framework is a pain... Of course it depends quite a bit on your audience as well.
 
Status
Not open for further replies.