By sapo916 on
I'm really looking into jumping into open source developement especially along the lines of web site design and most likely a few applications. Basically what I'm wondering is 'what' did you developers learn (php, etc) where you learned it (school,self thought,etc) and basic info like that.
So just a little guide on how I go about learning all this.
My current experience is basically is basically just using Joomla as thats easy enough for me, I did a few mods on my sites but nothing special. Very Much Appreciated.
Thanks
Comments
.
Oh just wanted to add that I'm 16 now... have a lot of time still to learn.
Your approach
Your intentions are good, but with your approach I would not be able to maintain my enthusiasm for longer than 3 days.
I am not a programmer, but if I need to do some c-code I start by getting some examples and messing with them. Sure that does not make me a good developer but it gets me to where I want to go.
I guess what I am trying to say is, simply start by doing things. Don't read hundreds of pages of PHP programming books. Simply get a few examples online and start modifying/enhanicing them.
Keep in mind, the brain works best when it is rewarded for learning new stuff. If you just keep doing things and see the results its much more pleasing.
I am sure, a lot of people will disagree with me. And no, I am not an expert (in programming). In fact I suck. But I get to where I want. And if I ever have to dive deep into some code I will do it. If something good turns up, I will contribute it. Then I am a developer too.
My time is simply to precious to sit down with a PHP book and I am not a very patient person.
Andre
-------------------------------------------------
http://www.opentravelinfo.com
http://www.aguntherphotography.com
I learned basically from
I learned basically from books and from online forums. I started with html, perl and php.
--
Webmaster Resources for Business Websites
Where are you hosting?
(Caveat emptor: I am no expert, the below mostly reflects my recent experiences. Hopefully I can help, I wish I'd thought of asking a 16 instead of guessing more or less at random.)
If you're not running a WAMP/LAMP, set one up. This site helped me a lot in setting one up. Pay attention to what you're doing AND WHY. Read thourgh the httpd.conf and the pp.ini files. Google things.
Learn xhtml, css, and read over the w3c dtds. Play with what you learn. Set up dummy sites on your computer, with different styles, layouts and organization appraoches. Download free or opensource webeditors, and play some more.
I personally have a great local library with up-to-date books on PHP, HTML, CSS, MySQL, etc. See if yours does, I wouldn't reccomand buying them, though, as the technologies change too quickly.
On the other hand, a good book on object-oriented programming, or a reference on web design that doesn't get too into the code, may be a good investment.
Oh, and use Drupal! :) I have found it to be much better than Mambo, and certainly a better learning tool.
Hopefully I've helped some,
Tistur
.
Thats basically what I have been doing my whole computer experience, but I was really refering to more advanced development but I see what you mean.
Ahh now... web site
Ahh now... web site design....
Which direction you go depends on your interests and what motivates you.
Some general thoughts on things that shouldn't take to many nights. :)
Read through the first three chapters of the MySQL handbook
This is not so you will be a master, but so that if you are going to be playing with a database driven CMS, you will have a nice foundation of slightly more familier terms and know where to look them up.
I still don't really know php, but there are any number of tutorials out there if you learn that way. Other ways are to install Drupal, then start figuring out how to do specific things. I would suggest that you at least run through a few of the various tutorials.
Web site design is about more than the mechanics though. It is about what a site is for, how will it's audience use it? Should it be pretty? A lot of experianced designers still don't get it and those that do argue over 'the right way' :).
http://evolt.org/ http://www.alistapart.com/
For research on words and complex subjects, just go to wikipedia first.
Others will give you web standards and all that stuff. Web Design is a large field with a lot of posible directions. As you play with this stuff, you will figure out what you enjoy. Have fun.
-sp
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain
-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide
Read everything and jump in
dude, you're 16, so you've got a lot more time to learn stuff than when you're working fulltime. throw yourself into it and learn everything you can.
i basically taught myself most of what i know about the web, but here are a few things i can pass on from my experience.
start by learning about concepts and theory. the details won't make sense until you understand why they exist. over time you will come to realize that the details change all the time - you'll always be learning some new language or protocol or whatever. but if you understand the underlying ideas then you can see patterns in all the details. think Neo in the original Matrix, when he finally gets it.
(a side note about Drupal: there is some basic theory of how drupal works in the handbook, but you have to look for it and a lot is out of date. the community is working on that.)
i recommend buying (or borrowing) books. searching around on the net for answers can be a waste of time until you've gotten the fundamentals down and you have a big picture. MySQL.org and PHP.net have complete manuals online, but they wont make much sense until you understand basic SQL and programming concepts. you need to build a basic knowledge structure before you can add bits and pieces, and good books with tutorials and explanations and structure will help you through that initial phase.
go to a bookstore, grab a bunch of books on the same topic and find a place to sit and read. read a little from each book and see which one makes the most sense to you. look for a book that has good explanations but also some actual projects to illustrate the concepts.
once you've spent your money, don't just read through a book. if they have tutorials, read the book in front of your computer while you follow the tutorials. reading about it isn't the same as actually doing it.
don't buy books based on how the covers look (though i have to admit i like OReilly and New Riders :). what matters is whether it makes sense to you. i like O'Reilly (publisher) for more tech stuff and New Riders for design-oriented web-focused stuff. but that's just me. you may like the way Wrox books are put together.
once you know the basics, you'll have a ton of questions on details, and the internet is a great resource for that.
one of the really great things about open-source is that you don't have to spend lots of cash on tools and things - you can just download them. except for graphics, you don't need a fast computer for web stuff.
here are a few things to check out:
- How the Internet Works, by Preston Gralla (really simple, but nobody knows EVERYTHING)
- OReilly's "Learning [YourTechnologyHere]" books
- Information Architecture, by Rosenfeld & Morville
- How To Ask Questions The Smart Way, http://www.catb.org/~esr/faqs/smart-questions.html
- The Pragmatic Programmer, by Hunt and Thomas (if you're into coding. maybe read some more intro stuff first).
- SQL Fundamentals, by Patrick, or something similar.
- etc.
Kids books on programming - seriously!
I learn by example. I've still got the original book I learnt programming from somewhere - a kids story book of two kids trapped in space and they had to programme all kinds of stuff to get back home. It was a fantastic book, and I tried out each of the programmes by typing them out and saving them to the amazing tape drive. I can't remember if I got them home safely though ;)
Learning by example seems to be the most popular way. Maybe I should write a PHP book on saving kids trapped in space? For ages 5+?
My Story
I started my first web site around your age... that was back in 1996 before PHP, and before widespread use of CSS, Javascript, Flash, etc. I also followed the worse possible web design style by using yellow and blue text on a black cloud background, with a spinning "Email Me" gif!
Fortunately I've improved in the last 9 years, but I'm still learning new things all the times. It was incremental for me: first HTML, then ASP/MS Access, PHP a couple years later, finally CSS, then Drupal, then Javascript, now on to learning AJAX and Flash Actionscripting.
The nice thing about web development is that there are so many free web resources to learn. I don't think you need to buy any books (or take any classes if you're self-motivated).
My recommendation: Dig into Drupal. Start a Drupal based site and then starting developing modules and themes to do things your way. Don't settle for an out-of-the-box look. Sometimes you'll spend a lot of time trying do something, but you'll learn so much in the process that it will be worth it. I was developing pretty advanced PHP apps before I started using Drupal, but I've gotten a lot better at all my programming tasks because of studying how Drupal works. It's really well designed, and it keeps getting better. I've also tried to figure out Mambo/Joomla and Xaraya and I'm still confused by them.
One more thing: get a code editor with a Find and Replace that will search your entire site. When you're working with unfamilar code you'll need it to find where a function is declared, or maybe to find examples in another module of where a function used.
some good resources
Bruce Eckel's Free Electronic Books
http://www.pythoncriticalmass.com/
These are electronic books in HTML on C++ and Java, along with the source code. The HTML books are fully indexed, use Frames for easy navigation through the chapters, and have color syntax highlighting on all the source-code listings. Each HTML download contains an entire book and source code in a single zipped file.
I also like Paul Grahams writtings alot, mostly because i was a painter before i became a hacker;)
http://www.paulgraham.com/hp.html
There are a bunch of different ways
My .02
1. Let your interests/projects drive what you learn. At the risk of stating the obvious, if something is personally relevant you will have more motivation to slog through the details.
2. Use a utility like Ghost to back up your machine -- this way, you can experiment to your heart's content with new software, etc, and if something seriously throws your machine out of whack, you can restore it to as-new condition using ghost
3. Back up your important data frequently.
4. Use google -- there are so many resources out there that I find it difficult to recommend just one -- besides, different people connect with different types of explanation. Find a site that explains a concept in a way that makes sense to you, and read through the info on that site -- then, follow links from that site, and work outward from there.
5. On web sites, view the source code of sites you like. Also, identify specific design aspects of the sites you like.
6. If possible, find someone with who has more tech skills than you. Ask as many questions of them as you can.
7. IMO, you're already doing the most important thing -- asking questions.
8. Do something besides tech stuff every day.
Hope this helps, and good luck.
Cheers,
bonobo
-------
http://www.funnymonkey.com
Tools for Teachers
-------
http://www.funnymonkey.com
I'm mostly self-taught.
I'm mostly self-taught. I took bonobo's approach and found something I was really interested in and set out to make a website for it. Then as people started asking for more features (or as I thought them up), I would teach myself whatever I needed to know to get them done and then go do them. I'm a "hands-on" learner so I'd actually go through the process of setting up a server, twiddling with it, trying an example from an online tutorial or piece of code I found, then switching it around to do something else, etc.
While there were courses in school that covered some of what I'd taught myself previously, you just get so much more out of it imho when you're doing it for a "purpose" rather than, "Oh I have to get this done by Friday." Though on the plus side, classroom learning exposes you to peers who are also interested in web design and you can get exposed to all kinds of new things that way (though I tend to gain a similar experience from hanging out on FreeNode). The other strength of classroom learning is you have a teacher to turn to if you run into a jam (though my experience is (especially with server-side technologies) if you're into this, you quickly advance beyond the point that the instructor can help you, and go back to self-teaching again).
If you're just starting out and don't know anything about things like HTML, JavaScript, etc., a good place to start is W3Schools. They offer interactive workshops where you can type code and see what it does right in front of you. A few other sites that have helped me tremendously are:
My progression language-wise was HTML (which is a great starter because it teaches you how to tell the computer what to do), JavaScript (a good intermediate language because it teaches you fundamentals of programing such as arrays, loops, and variables), and PHP/MySQL (a server-side language which can do everything from e-mail to PDF and image creation to database interaction, etc.). I then picked up a dozen or so other languages from school and self-directed projects. Once you have a basis in programming, for the most part learning other languages is just a matter of learning a new ways to say the same thing.
Good luck with your journey! :)