Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

General Discussion

olamilekan oshodi
olamilekan oshodi
959 Points

What program should i learn and what should i focus on.

Hi guy... am a bit indecisive on what i should learn. At the moment have just started learning PHP Basic which i believe i needed.

Basically am trying to develop an application STANDALONE for my work place where you distribute task to workers.

I want to be able to do the following.

  1. Create a project, 2. Create a task, 3. Assign task to worker, 4. User profile and management, 5. Role permission and acces right. Etc...

Please someone direct me on what i really need for this, this type of project will help me through other application development.

Thanks

4 Answers

Matthew Smart
Matthew Smart
12,567 Points

Hi olamilekan.

Sounds like you need a basic CRUD application (create/read/update/delete) with a few more things to throw in.

It all depends on how much knowledge you have in general for web development, and the time you have to complete the project.

If you have all the time in the world, then I would suggest that you learn PHP form the PHP track on treehouse. After this try and create the application. This app will more than likely fail or become incredibly messy, however, it will help you in the long run as you will learn things as you go. For example, you will hit a problem, search google for an answer, implement the solution and you have learned. This is the best way to learn.

After your first attempt, you will be considerably better with PHP and understand how things work. At this point you should be focusing on learning OOP, this concept will take a while to learn and will be frustrating at the best of times, however once the concept clicks, you will think how did i not get it before?

At which point you should be looking into a PHP framework such as Laravel or Yii. These frameworks will help speed up your projects with all of the basic stuff done for you out of the box. Such as user registration, form validation etc...

You will also need to Know MYSQL and look into relationships between tables. For example depending on how you make your app. A user can have many tasks but a task can only have 1 user. This would be a One to Many relationship. Or you might decide that a user can have many tasks and a task can have many users. This would be a Many to Many relationship.

Overall depending on your current knowledge and timeframe will affect your outcome.

However if you know nothing about PHP at all, then do not expect to have an application ready for at least 6 months. And by that, I mean a true application that is secure and tested to a decent standard. Anyone can butcher an app together with other peoples code and kind of know what's happening. But then you will make that app incredibly hard to maintain and scale up, ultimately leading you to re-develop the entire thing.

If you do not know HTML/CSS then forget PHP and swap onto the front end development track asap and complete it.

If you don't know javascript/jquery I would advise you to learn this before moving onto PHP. It's not 100% necessary however, to build a good application javascript/jquery are very useful

Matthew Smart
Matthew Smart
12,567 Points

I would like to add, if time is a big thing then learn at home and put as much time and effort into it as possible. Ultimately the more time you dedicate to this whole process, the better and quicker you will progress.

olamilekan oshodi
olamilekan oshodi
959 Points

Wow... thanks so much guy's that really help me alot. I did study Foundation Degree in college 9years ago, but i only manage the first year which only provide me with Diploma.

But have thought myself stardard HTML and CSS.

I stated this course with Front End Development before i decide to switch the JS because i seems to know more about his teaching.

I also the switch from JS to PHP because according to my research i thought i might need PHP more that JS thats why i came here for the question.

Also you mention i should focus on learning OOP am sorry what's that and what does it do.

Also does TTH team framework like Laravel if not where would start learning.

Thanks very much, awaiting your reply

Matthew Smart
Matthew Smart
12,567 Points

You are correct that you don't need to know javascript, like I said its not 100% necessary. However javascript/jquery really do make your application come to live. The basics are very simple. For example you want a div to hide when you click on button.

  $('.your-class-name').hide();

It really is as easy as that for the simple stuff. So I would invest some time going through some javascript, it will help you with PHP also when it comes to learning loops and if/else statements.

The front-end development course will really help you get to grips with HTML/CSS and Javascript. if time wasnt an issue i would advise ANYONE to first learn those 3 before moving to PHP + MYSQL.

OOP is short for object orientated programming. At the minute you will be looking at procedural programming. Although there is no way for me to explain it right now for you in a short paragraph, its not another lanmguage, its just the way you program with a certain language.

Kind of like there's multiple ways top eat a steak, you can use a blunt knife and you will be able to cut it, however if you use a steak knife it will be easier, faster and cleaner.

BEFORE you move into any framework, make sure you have got to grips with:

  1. HTML
  2. CSS
  3. Javascript (even if it's the basics and takes 5 hours or so)
  4. PHP (procedural)
  5. MYSQL (doesn't matter how good your PHP is, without myself you can't store data into a database)
  6. OOP PHP

At this point you have a solid foundation to test the waters if you like. Do not try and rush these steps, because it will just mean you have to revisit each step in the future. Take the time to really get to grips with these 5 languages, it will save you!

Once you are confident that you can create basic database driven websites try to build your app. You will probably think you will not be able to do it at times and think you have forgot most things you learned. That happens but that's what google is for to quickly recap and communities like treehouse and StackOverflow will help.

Once you have built this app, you will realise .... hang on this is getting messy, surely there is a better way to organise my code. I have logic and layout code everywhere. This will be a nightmare to continue building upon.

this is the point you will venture into MVC Frameworks (Model View Controller). However do not even think about this until you have gone through the steps above or similar. I would imagine treehouse will start making more MVC framework videos soon, they only have old ones for laravel 4, but laravel 5 is out now so it would be pointless to learn those videos.

If you choose laravel , i would advise first reading through laravels documentation which is incredibly detailed. https://laravel.com/docs/5.2 and for video tutorials go to https://laracasts.com/ which is dedicated to laravel.

Anyway good luck on your journey , hope i have helped :)

olamilekan oshodi
olamilekan oshodi
959 Points

Wow... i never believed i will get this explanation anywhere you have really helped. I hope when i start with this journey i will be able to ask you for help.

Although am a rush to get things done but i think now with your detailed explanation will take things one at a time.

One last question, do you think is wise or good idea for me create an HTML mockup and CSS of what i want the app to look like and then i will save it as PHP and then start adding <?php...?>s as i go along.

What do you think. If the best thing to do then i can continue with my learnjng.

Thanks a lot youve being a live saver.

Matthew Smart
Matthew Smart
12,567 Points

No problem, I always like to go into detail on these forums. Mainly because when I needed answers I just got a few lines which meant I still wasn't 100% sure.

To answer your question, if you are happy with your HTML/CSS skills then yes go for it. That's what I do, whether I'm building a normal pure PHP site, a WordPress site or a Laravel application open a new project folder. Add in my index.php my styles.css a folder for javascript and a folder for images. Once the site visually looks how you want it to look, it is just a case of adding in the chunks of PHP around it.

For example, you may need to list something like this in pure HTML:

<ul>
    <li>apples</li>
    <li>bananas</li>
    <li>pears</li>
    <li>orange</li>
</ul>

Now when you finally add in your PHP code you will find that you will reduce the amount of code. So if you was pulling your favourite fruits from the database it would be something like:

<ul>
    <?php foreach($fruits as $fruit){ ?>
        <li><?= $fruit['name'] ?></li>
    <?php } ?>
</ul>
olamilekan oshodi
olamilekan oshodi
959 Points

Great... i think i will be doing that first, so that would give a idea of what am working with.

Thanks a bunch really appreciate it mate.