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! While you're at it, check out some resources Treehouse students have shared here.

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

Ossian MacDonald
Ossian MacDonald
2,175 Points

Best Way To Start Blog?

Hi All,

I am hoping to start a blog to document my learning process, and I am not sure the best way to start.

I am aiming to become a software engineer, and I know that a blog is a great way to show your experience with learning. Eventually, I would like to just code up a blog format from scratch as part of a larger design strategy. But, right now my skills are pretty basic. I could take a crack at coding one right away-but it wouldn't be all that great.

Would it be better to just find a template and link to that for now, and then code one from scratch later? If so, what are the best resources for that? I could link to wordpress, but I don't want to be 'stuck' with that format once I can code up my own blog-if that makes sense?

Thanks in advance for all the help!

9 Answers

Kevin Korte
Kevin Korte
28,148 Points

I'm not sure what you mean by "link to that", but IMO there is absolutely no reason to go reinvent the blogging wheel. I'd pick a CMS (there are wordpress videos here) that would serve your needs, like Wordpress, among other choices.

If you went with wordpress, you will only be 'stuck' by your imagination and coding skills. Wordpress these days is incredibly flexible, adaptable, and customizable.

You could for now, pick a theme and use that for awhile, and than later hand craft your own theme from scratch.

No offense, but if you take an average amount of time learning to code - you are probably years away from building a production ready CMS. For one person to build a custom CMS, it would take I bet years to complete, and after all that work would you have a CMS that is more secure, more robust, more feature rich, faster, and less buggy than these open source CMS's that have been in development for years, by many coders working on them at once? Probably not.

That's what I would do. I'm most comfortable with wordpress, so I'd start there, find a theme I like, use it, blog with it, learn about coding, and than hand craft my own theme later. You wont lose any of your posts or data. In the meantime, I'd do all of the wordpress lessons here, more than once.

Does that give you some direction that I think is appropriate? I'm not trying to be mean or disrespectful. I'm just trying to save you from doing something that is already done fairly well, and to spend your time working on bigger and better projects for yourself.

Andrew McCormick
Andrew McCormick
17,730 Points

I agree with Kevin as far as not reinventing the wheel. Now rebuilding WordPress or a CMS from scratch can be an amazing learning process, so that is something that you could consider doing as part of your education. I would start with WordPress and at least begin working on your own theme. That's a start. Then you can being to add in functions and start hooking into the core to make WP do whatever you want.
Remember that content on a WP site is mainly just code pulling from the database. So if you don't want to be stuck with WP after you are ready with your own blogging platform, then learn about how Wordpress stores it's content and create your own importer to export out of WordPress and into your custom CMS.
No one will look down on you for using WordPress, especially if your constantly linking to other projects and/or places like your GitHub repository.

Ossian MacDonald
Ossian MacDonald
2,175 Points

Thanks for the answers guys!

That all totally makes sense- I kinda figured that using wordpress or similar was the way to go.

When I say link to wordpress, I mean that I was going to try to make a personal web page that links to my github profile, blog, contact info, etc. From that homepage, just linking to the wordpress blog.

Really appreciate the advice and help here fellas!

Kevin Korte
Kevin Korte
28,148 Points

Andrew made a good point. Don't discount not building your own CMS ever, because it can be a great learning process. Today though, a pre-built CMS would be great for you for the reasons I mentioned. Who knows, if it peaked your interest, maybe you could build the next greatest CMS.

That's what I thought you were meaning by 'linked'. And while there is nothing flawed with your idea of building a site and linking to a wordpress blog, if it were me, I'd eventually want to have my entire site in a CMS, like wordpress.

And so your front page could be static and be whatever you want it to be. However you want to code it. And you blog could just be a post type of your website. One domain, one code source, completely flexible.

If you have time, it might be worthwhile to watch the Building a Wordpress Theme videos here, even if you do not code along. It will give you a great introduction to what wordpress can actually do. When you know more about what a CMS can do and how you can manipulate it to do what you want, you can start to see how your site might actually be structured.

http://teamtreehouse.com/library/websites/how-to-build-a-wordpress-theme

Good luck!

Aaron Walton
Aaron Walton
3,557 Points

Before taking on coding a new blog package, it's a good idea to nail down the "why" part of the project. Why do you want to create a new one? Do existing ones have shortcomings that you would like to resolve? Do you want to create a CMS that caters to a particular niche? It's unlikely you will be able to answer these questions unless you have experience with existing platforms so from several perspectives I'd say starting with an existing CMS is important.

James Barnett
James Barnett
39,199 Points

I am hoping to start a blog to document my learning process, and I am not sure the best way to start.

Like the old saying goes writes write if you want write blog articles do that, tumblr is a simple platform to get started on.

Ossian MacDonald
Ossian MacDonald
2,175 Points

Thanks for the great responses everyone! Really appreciate the prompt and thorough feedback!

I think that I had assumed that it was expected to make your own homepage independently- sort of a way to show off your chops as it were. I see guys like this, and am like wow, this is where I want to get to:

http://tylermcginnis.com

But, I can see that wordpress is more customizable than I realized. And certainly more quickly attainable as far as getting down to writing.

Kevin, may I ask why it is preferable to have everything on a CMS, as opposed to linking to a wordpress blog from an 'independent' homepage? Is this for general ease of use, and to have everything under one domain name?

Cheers!

Aaron Walton
Aaron Walton
3,557 Points

That Tyler McGinnis site is Wordpress.

Ossian MacDonald
Ossian MacDonald
2,175 Points

Hoho! Are you serious! Man is my face red, but I'm also stoked to hear that. I guess I had no idea how powerful wordpress could be. I had overlooked that as a tool. Forgive me if I am asking questions that are covered in course content here, but how does one know that a site is Wordpress?

So, he just customized that theme a good deal using jquery?

Also, and this may be another thread topic entirely, but would you suggest doing the wordpress content before learning Javascript? I have done the html, and most of the css deep dives, and was starting to learn javascript (just eager to dive into programming). But, perhaps it would be more wise to spend time with wordpress/PHP? Or even really polishing up html/css skills.

Many thanks again! Very appreciative of the help I am getting here. It can be a lot to wrap one's head around without guidance.

Andrew McCormick
Andrew McCormick
17,730 Points

I use Wappalyzer for Firefox and Chrome...http://wappalyzer.com/

but you can also just look at the page source and typically see.. for example on this site he's got stuff like
"<script type="text/javascript" src="http://tylermcginnis.com/wp-content/themes/mercurial/js/jquery.flexslider-min.js"></script>" in the head. anytime you see "wp-content" you know it's WordPress

Ossian MacDonald
Ossian MacDonald
2,175 Points

Oops, sorry I posted before I saw your post Andrew! Wow, I am blown away. Here I thought that this guy had custom coded that site. Just goes to show how much I have to learn still.

Kevin Korte
Kevin Korte
28,148 Points

I think you might have an idea why I like the idea of having the entire site on a CMS, as opposed to the opposite. My other reasoning for that suggestion is I once did just that. Had a custom coded main site, and a blog section of it that just ran of Wordpress, because at the time that is all I knew how to do it. It was an absolute nightmare to set up, maintain, etc.

That site has sense been destroyed, and I enjoyed every second of that process. It was a nightmare.

When you have everything in one CMS, first, everything is in a database, which is great. This makes site redesigns so much easier, since your content is separate from your code.

Second, one site, one login, one place to do maintenance. It's just so much easier for the whole process.

Third, lets say you have another project you want to add to your portfolio. If you have a CMS, you could have your portfolio have a custom template and a custom fields, whatever you need it to have. You could upload your images, your title, your captions, body text, etc and when you hit submit the code will just do the rest. You could have your code take your images, and resize them to whatever they need to be and save a copy of that! Colors and font's can be formatted for you in the code. It's so easy to update. No more changing the code, forgetting to close a div, uploading it live to FTP and having the entire layout break!

It's much easier to keep the DRY (Don't Repeat Yourself) principal with a CMS. You build a template, and the template generates the HTML for you, you don't have to keep repeating the same HTML elements. A fairly small template can generate a lot of HTML.

I won't develop a site anymore without some sort of CMS. I've done it once, and I'll always do it from now on.

When you use a CMS like wordpress, you also get great plugins like Yoast SEO, W3 Cache, Infinity Scroll, Lazy Load, Flexslider, etc that allow you to do very impressive things without having to code any extra stuff yourself. There are some great SEO and performance plugins in WP that are just plug and play. Drupal has something similar I believe called modules, so it's not a WP thing, but it is usually an open source CMS thing.

And as far as see if a site is WP or not, I use what Andrew uses. I use the browser extension Wappalyzer, but also as he mentioned, looking at the source code, in the head of it will be a lot of "wp-content" links which is a dead giveaway.

Andrew McCormick
Andrew McCormick
17,730 Points

@Ossian MacDonald FYI... shoptalkshow.com just answered this exact question on the last episode. Nothing really new, but just some more insight: http://shoptalkshow.com/episodes/087-nicolas-gallagher/#t=41:45