Re: A Lot of Questions from a Noob



On 18 Jun 2009, Mason Barge <masonbarge@xxxxxxxxx> wrote:

I retired early and took about a year to learn html/xhtml, css,
php, and MySQL. (I've picked up some smattering of some other
things, like Apache, javascript, regex, XML, etc.) I reached the
level of competence in procedural PHP/MySQL and can do most
anything inside those limits.

Great!

<snip>

[...][H]ere is one of the pages (for my little
neighborhood ass'n) I was working on -- it's a database-generated
page with modularized articles:

http://collierhills.net/index.php

Yeah, I realize this is a bit primitive compared to some of the
slick sites you guys do :) Graphic design is not my strong
point.

You're no slouch; it looks good, IMO. You should see me
floundering in Photoshop (err, maybe you shouldn't)!

<snip>

#1 I need to set these up so that they can be updated and
operated by people who don't know html. I'm currently working on
integrating TinyMCE into the administrative area of the page
above, which I hope will work.

I recall you asking about this before. I'm sure you'll be able to
figure out how suitable it will be once you toy around with it.

#2 I need to decide whether to learn and use OOP and/or some
sort of framework.

The main question is, do you want to learn object-oriented
programming? OOP is a language paradigm that is not specific to
any one language. It's never *always* the right answer once you
get to a certain point of complexity in a project. C programmers,
for example, don't always implement an object-oriented model to
solve solutions. A lot of large projects are procedural.

That being said, it's always good to learn a variety of different
languages and paradigms, as it helps you grow as a programmer.

I Google'd for an introduction to object-oriented programming, and
I found a guide by Sun, which is aimed at Java. I think the
concepts should apply to many languages implementing an OOP
paradigm, though.

<http://java.sun.com/docs/books/tutorial/java/concepts/>

I remember Jerry Stuckle mentioning a good book or two on object-
oriented theory. I'm sorry, I can't remember the titles and
authors he mentioned. :-)

My question is about #2.

I have time and inclination to learn a new language or system
(framework, environment, etc.).

Which OS and facilities are provided by the host? This will
realistically narrow down the tools you have at your disposal.

My question is: Given my
circumstances, which of these do you think would be the most
useful?

Some of the items in your list seem quite arbitrary, and possibly
not even related to what you're doing. My advice is to plug each
list item into Google, one at a time, and try and grasp the
superficial basics to get an idea of each.

1. PERL

Watch out for the die-hard Perl fanbois: "It's Perl or perl, but
never PERL." :-)

Perl is a very expressive language, which is very hard to pick up
by reading experts' source code. There are a number of great
references, though. Be aware that Perl can end up looking like
line-noise, *but it doesn't have to*.

<http://www.perl.org/>
<news:comp.lang.perl.misc>

<skip>

3. PHP OOP

PHP 5 OOP has come a long way from PHP 4. It's quite capable of
handling your needs.

<http://php.net/oop>

4. javascript

JavaScript can be implemented as a server-side solution, but I
wonder how difficult it would be to find hosting that offers this.
For the most part, JavaScript is used as a client-side solution in
Web development.

Check out the comp.lang.javascript FAQ:

<http://www.jibbering.com/faq/>

<snip>

7. Ajax

Ajax is a buzzword, which refers to the principle of using the
XMLHttpRequest object to make requests to the server without
requiring the page to reload.

<http://www.jibbering.com/faq/#ajaxRef>

If you must use an Ajax library, choose judiciously, and make sure
you lurk on comp.lang.javascript for a while to help with things
like that.

8. Smarty

This is a templating engine written in PHP. I never did like
templating engines written in PHP, but a lot of serious projects
use them (phpBB and many other forums, for example).

9. Zend (isn't this expensive? I'm looking for open source or at
least cheap)

The Zend Framework is available for free. It's designed to
implement the MVC pattern as a solution to separating presentation
from logic from data.

<http://framework.zend.com/docs/quickstart>

10. Yii

I see this spammed in the group sometimes, so I never actually
checked to see if it was legitimate.

<snip>

12. A programming language (C, C with some number of plusses,
Java). 13. .net

I would hold off on using C or C++ for designing server-side
applications. You really need to harden yourself to prevent
serious exploits like buffer overruns from running amok (not to
mention many other subtle manifestations of undefined behavior).
I'd recommend not attempting this until you have at least two
year's experience with one of the languages.

If you do try to learn C or C++, make sure you find a reliable
source that treats them as different languages, because they are.

<http://www.eskimo.com/~scs/cclass/>
<http://www.c-faq.com/>

Here's a good page covering reliable C programming resources:

<http://www.cpax.org.uk/prg/portable/c/resources.php>

14. Something else.

A lot of these, I really don't even understand what they are and
how they work, e.g. Ruby, PERL, Zend, SOAP. The definitions just
leave me dazed & confused. This is simply overwhelming for
someone who doesn't have years of professional experience and/or
a BA/BS in the field.

I never took any courses for programming in college, either; but
what you have to accept is that it takes time -- a LOT of time.
Not only do you have to do a lot of reading, but even more writing.
Learning by doing, and experiencing this stuff is really the best
way to go.

I can't recommend this article enough, "Teach Yourself Programming
in Ten Years," by Peter Norvig:

<http://norvig.com/21-days.html>

<snip>

Any help or comments would be greatly appreciated. Pretend I'm a
reasonably bright guy without any programming background.

It seems like you're doing fine. It's easy to get inundated if you
try to learn too much at once. If you want to try learning
something new on this project, just make sure it's something you
can manage and that you'll enjoy.

Sorry for the lengthy post, I hope this helps a bit. :-)

--
~Curtis
Anonymous (1984 IOCCC winner):
int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\
o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}
.



Relevant Pages