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!

Recommended Answers

All 18 Replies

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.

commented: Very interesting tool that you have just suggested. Big thanks! +1

for php-mysql-html-js apps using frameworks makes development really fast. I use the Yii framework and I like it)

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.

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.

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.

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?

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.

commented: A few nice advices :) +2

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!

I built a "form generator" to speed up making forms with alot of fields.
The way I programmed it is that I open a page on my server with all 50 rows of input. In each row I decide what text I want beside the input field, what kind of input it is(textarea, select field etc), I decide which kind of database field it will be, I decide if it is a required field or not, if it is a select input, I decide if should be populated from database or not, if by database I put in the query, if not I put in the options deliminated with kommas.

Then I click submit and the html code is created, all the php code to process it along with error catching like (you must fill in all required fields etc), query to create the table in the database. This can come in quite handy when Im creating a form with like 30 input fields. Im going to add to the application where it would also create a file where one edits the table(update instead of insert) and a search page(where users can filter out data in the database).

commented: Interesting and very useful. +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.

Member Avatar for diafol

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.

commented: Thanks, two interesting libraries I haven't heard of. +2
Member Avatar for iamthwee

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.

Member Avatar for iamthwee

Scripts I tend to use stuff from dhtml:
http://www.dynamicdrive.com/

Although I'm starting to like jquery a lot now
http://slidershowcase.com/category/jquery-sliders

I also know a lot of flash actionscript 3.0 so I throw that in sometimes for good measure.

One thing I noticed is good clean design and images with a consistent colour scheme throughout makes a lot of difference.
So I reference http://www.smashingmagazine.com/ for ideas and http://themeforest.net/ for word press themes or ideas.

Sometimes it is easier to just buy a theme and manage it for the client.

commented: Nice bunch of links! +2
Member Avatar for diafol

> For template design, I use front page.

You kid me not?? :)

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 :)

Thank you for all the tips, I learned a lot from your advices :))

Member Avatar for iamthwee

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!

Member Avatar for iamthwee

A few more links which I found useful.

The best lightbox plugin in the world in my opinion ->supports flash pop ups as well

http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/

Cu3er is a commerical 3D flash gallery you may have seen before but you can get a totally free version which is almost as good.

http://cu3ox.com/

The best menu system in my opinion and highly customizable
http://users.tpg.com.au/j_birch/plugins/superfish/

Printing graphs has always been a pain. There are many options out there - most look mundane in my opinion. Free flashfusion charts works with an xml driven file on the flash platform (actionscript 2.0) which looks good. Even the freebie version looks good if you set it out right.

http://www.fusioncharts.com/free/

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.