How to create programming projects very fast?
For each of the step (even that specific as what editors and other software to use) included into building an application (for me mostly - web (php-mysql-html-javascript)) I really need tips on how to improve them so I could start working really really fast and be able to generate all the required functions in an application like in one day instead of a week. The problem is when I come up with a nice idea, I start to develop it, but it takes way too long and I get bored of it and throw away. How to prevent (well my solution would be to program faster, but I don't know how) this? Thank you in advance!
kolibrizas
Junior Poster in Training
52 posts since May 2009
Reputation Points: 22
Solved Threads: 2
If you get bored with programming that easily, then maybe you just weren't made to be a programmer. Programming requires patience and perseverance. I don't think that there is any way around that. There are solutions like frameworks that are supposed to speed up the development process but in order to get to the point where you can effectively use the framework, you have to invest quite a bit of time to understand it.
One way to cut down the development time is to collect a library of code for common functions. Using include modules and reusing / adapting code can cut down the development time quite significantly. No matter what you do though, I don't think that you'll be able to develop anything significant in a day. There are some code generators (e.g POG ) but I don't know if any serious development is being done with them or how much quicker they make the process.
chrishea
Nearly a Posting Virtuoso
1,428 posts since Sep 2008
Reputation Points: 210
Solved Threads: 230
How about developing a Content Management System (CMS)? Build a Framework CMS (like mentioned above) from scratch so you know EXACTLY how it works and you can expand it from there. A lot of website developing companies (the good ones) usually have their own proprietary CMS for all their clients. They install modules, themes, etc...
OR use an existing system such as Wordpress, or even better, Drupal. I know you probably didn't want to use an existing system, but if you master Drupal, you're set.
That's just how I was taught when developing websites (I'm not amazing at developing yet): learn what's out there, then build on it, or create your own, but never take credit for others work.
That's how I view this situation IMO.
epicrevolt
Junior Poster in Training
94 posts since Oct 2010
Reputation Points: 16
Solved Threads: 6
If you get bored with programming that easily, then maybe you just weren't made to be a programmer.
Well according to what I was doing so far I am definitely made for programming, it's just I am missing something very important and I cannot find out what. Probably it is the lack of people who to program with. For the two larger things which I finished, both of the times I had a friend on my side to help me :) However he is pretty busy and the other friends lack motivation just like me or don't know how to program at all.
kolibrizas
Junior Poster in Training
52 posts since May 2009
Reputation Points: 22
Solved Threads: 2
How about developing a Content Management System (CMS)? Build a Framework CMS (like mentioned above) from scratch so you know EXACTLY how it works and you can expand it from there.
Probably the best advice I heard from anyone. Thanks a lot, definitely going to do my own CMS, so I can later expand it.
kolibrizas
Junior Poster in Training
52 posts since May 2009
Reputation Points: 22
Solved Threads: 2
The questions that I have:
Should I make a php class for each of the table in mysql that I have?
Should I have all the html in file like posts.php or in class file like classes/Posts.php?
Should I have functions like form(...) for form generation, etc?
kolibrizas
Junior Poster in Training
52 posts since May 2009
Reputation Points: 22
Solved Threads: 2
I don't know why someone downvoted that, I find it good questions.
While writing a CMS (of course) won't get boring soon, you'll be careful not to do things over and over again in writing it, too. Some tips:
You'll definitely have to make a class for every part of your cms, not necessarily table. For example, if you at some point include a forum, you could create a categories, threads and posts class, but you could also opt for making a forum class only. However, in both cases you'll find that you'll be creating get_post, get_posts, get_thread, get_threads, get_category, get_categories functions, etcetera, etcetera. So I advice you to create a ActiveRecord class and extend that everywhere.
Generally, try not to put html in classes, but then I mean the html for pages. Html for one specific thing is OK in my opinion.
For form generation, I would also make a class, with an html($ID) function that generates the html for the form.
twiss
Veteran Poster
1,005 posts since Apr 2010
Reputation Points: 177
Solved Threads: 101
For form generation, I would also make a class, with an html($ID) function that generates the html for the form.
Can you please be more specific about this function. I assume :
the Form should be a child of HtmlElement class
the html method in Form should extend the html method in HtmlElement
the $ID should stand for the id of the form
However my question is: is that enough for the form parameters? Or maybe I should make code like this:
$Input = new Input();
$Input->set_name("username");
$Form->add_element($Input);
and only then cast the
$Form->html($id)
as a final step to generate full form with inputs, etc.? As I can see now the question turned out to be some kind of a plan. So the edited question looks like: does this plan I mentioned sound ok and what should be changed? Also are the names of the methods and variables ok, or let's say $Form should be $FORM?
Thanks in advance!
kolibrizas
Junior Poster in Training
52 posts since May 2009
Reputation Points: 22
Solved Threads: 2
It is good to develop tools for generating forms. It is essential for self growth. But those who do not have time to do all this, they should use ready to use tools. For managing mysql table data operation, I use free version of php datagrid428 (support is stopped for free version). It is still left with so many bugs, They have removed bugs in latest version, but latest version is not a free one.
urtrivedi
Nearly a Posting Virtuoso
1,306 posts since Dec 2008
Reputation Points: 257
Solved Threads: 270
Libraries, templates and boilerplates can cut down development time. Libraries and frameworks may have steep learning curves. They are no substitute for learning the native language though. These are used (usually) once you have a firm grasp of the languages concerned.
jQuery (js)
960grid systrem (css)
rainTPL (template system for PHP)
are a few examples. I tend to stay from full-blow php frameworks.
Your choice of IDE could also be useful: code-hinting and code completion can be invaluable. Also getting local copies of language manuals. Notepad++, Aptana have been good to me. However I just got a copy of DreamweaverCS5.5 and that (hangs head in shame) does pretty much everything I need.
Programming faster for me usually means sitting down with a pencil and paper for a good hour (usually more) identifying various aspects of the project before I write a single line of code. The just 'jump in' method may be fine for tiny projects.
Using wireframes to bounce ideas about may be useful - from a UI/UX point of view. You don't want to start producing graphics / themes / layouts which are going to be detested / unusable.
diafol
Rhod Gilbert Fan (ardav)
7,792 posts since Oct 2006
Reputation Points: 1,170
Solved Threads: 1,080
Also it depends what package you buy.
I'm assuming you opt for the php+mysql option since you're posting in a php forum.
From experience, I think that wordpress is a highly customizable CMS all round system, with tons of scope. I'm starting to use this more now when friends/colleagues request sites because it also allows the end user to control stuff, although that comes with it's own risk.
For template design, I use front page.
iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439
iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439
> For template design, I use front page.
You kid me not?? :)
diafol
Rhod Gilbert Fan (ardav)
7,792 posts since Oct 2006
Reputation Points: 1,170
Solved Threads: 1,080
I gues no shortcut,
Learn HTML/CSS-->JS-->PHP-->MySQL and if you want AJAX
Then you can opt to go to frameworks if you want.
Practice is what makes you good programmer. Note, there is security issues, and that is different beast altogether :)
evstevemd
Senior Poster
3,713 posts since Jun 2007
Reputation Points: 462
Solved Threads: 392
Thank you for all the tips, I learned a lot from your advices :))
kolibrizas
Junior Poster in Training
52 posts since May 2009
Reputation Points: 22
Solved Threads: 2
You kid me not??
I sh*t you not! I'm starting to realize what a pain creating table layouts can be in front page for cross platform standards.
Thanks for showing me that 960 css thing. This looks very interesting indeed!
iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439
iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439