Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

laurenashley

macrumors regular
Original poster
Jun 24, 2013
225
65
Bloomington, IN
I wasn't sure how to shorten what I am asking in the title, but I guess that will do.

So I am taking a summer course at IU, and I am required to develop a project that requires me to learn a new program/language/etc. I already wanted to create a personal website for potential employers as I am a senior. I know html and some basic css, but need to pick something to focus on learning as I develop my website. (Other projects can focus on learning Final Cut Pro, flash, and other stuff like that but editing videos won't help me in the future)

I know I will try to learn Illustrator for the graphics, but I would like something else to focus on maybe code-wise. I know some websites use PHP and SQL but I'm not sure those would be relevant. I don't know if there are any other programs like Dreamweaver I could learn...I'm just at a loss. Also I know of bootstrap, would that be something I could try to "learn" or is that too easy?

I obviously don't know a lot about actual web development but I can create a simple website with DIVs and tables, so I gotta focus on something harder and that would help me create a website...

P.S. I need a general overview by Thursday so I would appreciate any and all feedback even if you think everything I said was wrong...correct me! :)
 
I think you're mostly on track, maybe just a few clarifications.

For web development, you've got front end work, the relevant technologies being:

HTML/HTML5
CSS
JavaScript

Those all run "in the browser". You can write any of those with a simple text editor, but there are of course apps that have WYSIWYG type previews, asset management, etc.

When you're dealing with front end development, you're also [usually] handling your graphics requirements too, so that's where an image editor would come into play. That of course is a vast array of possible applications.

For backend work, i.e., code that runs on the server (as opposed to code that is just distributed from the server, like the aforementioned front end tech), there are are several options, but what I'd say is the core technologies that are generally used on the server side:

Web programming language / framework
Database

As to the _specific_ language/framework and database, there are a number of choices (this is just a sample):

PHP
Ruby/Rails
Node.js
Python
Java
ASP.NET

PHP is an extremely common scripting language (on the server side) for the web. [for the sake of argument] it not as "general purpose" as something like Python. Again, all that's needed is a text editor to create the PHP files, but you do need a machine running a server that will handle PHP.

Databases also have a wide range of options:
Postgres
MySQL
MS-SQL

(again, a very abbreviated list)

DB data modeling/design is an artform in itself. :)

You might hear the term "stack" - that's a common way to refer to all the parts of a complete web solution, that can also include infrastructure.

If you're on a Mac, MAMP is a server with the PHP libraries, a MySQL server and some admin tools. One click install and you're ready to go. Just grab a good text editor like Sublime and you're set.

I have a number of solutions up and running, that use a wide range of tech (I'm not much of a fan of PHP for various reasons):

ASP.NET
Oracle
<"regular" web markup>

Node.js
MongoDB
Angular
iOS

Rails
Postgres
Ember

Note some of those also include additional backend tech like caching servers, content distro services, and whatnot.

OK, all that being said, if you're JUST creating static content, and just want browser/client-side interaction like a photo carousel, then all you need is the first block of tech/tools/skills. If you want to have server processing where you store data for future use, do things like upload content, you'll need to add a backend solution like PHP to your stack. If you just want a CMS, then you can just use an OOTB product like WordPress, Joomla, etc., they happen to be written in PHP, but you don't need to wade into that unless you want to customize it.
 
Last edited:
Infrastructure

To piggy back of of what D.T. said you might want to consider using AWS for hosting your LAMP server if you choose to go that route.

I followed this tutorial for was EC2 instances
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html

To set up a server for my Personal Website. I am a horrible web dev and focus mainly on iOS. But the tutorial helped me with one of the more difficult aspects of hosting your own website and that is the infrastructure.

My website is a HTML/JS/CSS website with a bootstrap template i got from the interwebs. PHP is only for the wordpress backend that i plugged in as well.
----
Note i do not work for Amazon. I just am in love with their infrastructure now.
 
To piggy back of of what D.T. said you might want to consider using AWS for hosting your LAMP server if you choose to go that route.

I followed this tutorial for was EC2 instances
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html

To set up a server for my Personal Website. I am a horrible web dev and focus mainly on iOS. But the tutorial helped me with one of the more difficult aspects of hosting your own website and that is the infrastructure.

My website is a HTML/JS/CSS website with a bootstrap template i got from the interwebs. PHP is only for the wordpress backend that i plugged in as well.
----
Note i do not work for Amazon. I just am in love with their infrastructure now.

Yeah, I dig on AW Services and really agree about simplifying the "ops" part of development. Even when I've used a non-AWS service for my app/db like Heroku (of which I'm also a big fan), I still use AWS for services like S3 (object store).

FYI, I'm actually hosting some static sites on S3 and it's outstanding. If you want to serve on the bare domain (i.e., domain.com in addition to http://www.domain.com), you also have to use their Route 53 DNS service, but it's so super cheap. Those two sites cost like $1.50/month and with a tool like CyberDuck, I have direct, secure access to the content.
 
I have more than 17+ years doing development. Simple is always better.

The *front-end* (html, css, js) is the hardest/worst part. Mainly because JS is a half-bad/good language and right now exist a *massive explosion* in the ways how do the front-end thingy (ie: libraries, frameworks, etc), and is tricky even for experienced developers to chosee what tools to use.

You can stick with jquery + http://getbootstrap.com/, and perhaps get a ready-made theme from a site like http://themeforest.net/search?utf8=✓&term=bootstrap or similar (if you know how edit already-made code, and note how I pre-select bootstrap themes).

Both of this will be enough for the majority of the cases IMHO.

I say this just to not make things harder/confusing and pick others tools that are popular now, but that are not good idea for a first-timer.

---

HTML, CSS, JS is unavoidable (at least, without get into niche tools), and buy/get a premade template is probably the better/faster way to move forward.

----

For the backend is kinda easier. Any popular language is good enough, but I think the best overall is python. Ruby is also good, and PHP is popular, but python is the best + simple combo right now.

And is better if use:

https://www.djangoproject.com/

Check the tutorial. Django make easy to do a farily configurable admin site (ie: the part in where you edit data, manage users, etc) and this alone is the biggest plus of django and the faster way to have a usable site in few minutes.

Is truly good.

Then the rest is also good. You get a nice way to manage data in the database (https://docs.djangoproject.com/en/1.8/topics/db/queries/) ways to reuse html code with templates (https://docs.djangoproject.com/en/1.8/topics/templates/) and tons of other stuff you don't know will come handy.

But the best part?

The documentation is top-noch. Django have (probably) the better documentation in the open-source land to do web apps. And the ecosystem will cover any wish you will have, plus the python ecosystem will cover any other wish you can imagine.

So, yes, I think django+python is the better option overall for most casual-web developers and experienced-developers today.

Others tool are also good, and depending in the use case will be better, but I think for now simplicity (something that *is* the mantra on python) and get-to-results-fast is better.

----

For deployment:

I don't think amazon/azure is a good option. Are more complex.

Heroku is the standard in how deploy *easy* a websiste, and is cheap for run a low-intensity website.

DigitalOcean/Linode if wanna total control and do everything inside a linux machine.
 
Thanks so much for your guys' input! I didn't think anyone was going to respond so I just now saw that I actually got responses. I think I've decided to focus on front-end stuff since I know basic html/css and I have hardly any experience in js. Plus I also have zero knowledge of Illustrator so I think I might use that as something to learn for my graphics, I've always used Photoshop so it'll be nice to finally learn that.

Again thanks a lot, I'm taking notes on the backend stuff you guys mentioned as well I just won't have enough time to learn all of it. I already know a lot of Python and I want to learn Ruby on Rails as well. The server stuff kinda gives me a headache so I might have to take a weekend and really just learn as much as I can. Plus my school already gives us hosting so I can use that for now then worry about it more when I want to publish it and put it on my resume.

If you guys have any other tips or things I should look into, just let me know! :)
 
Meteor.com

If you haven't programmed anything yet and want to start from scratch, you should really dig into Meteor. It will save you endless hours of coding. What makes it stand out? Reactivity. Everything is live. If you update something, all clients on the site will see the changes being made without having to refresh or reload. Just started with it myself coming from PHP, MySQL and AJAX, and it really blows my mind how simple stuff is. You can port your projects to apps to run on iOS or Android quick and simple. I envy how easy it is to create something awesome in just a few lines of code for the new generation of programmers. The most frustrating part is how easy it is to put the project together. In the few projects I have done, I'm constantly thinking, "It can't be that easy?" coming from traditional markups and endless set of instructions of logic to get what I want.

Dig further into the following technologies
Meteor
MongoDB
Jade
SASS or LESS
Autoform
MomentJS
Bootstrap
and you should learn JavaScript.

To code use Sublime, TextMate or Coda. Also get an account at Digital Ocean ($10 a month plan to have enough RAM to drive Meteor), it's great to know the inner workings of how to control everything. Meteor is easy to install as well. Just paste a line of code into the terminal window, and you should be good to go.

Look no further.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.