Reply to topic  [ 9 posts ] 
A guide to programming concepts 
Author Message
Spends far too much time on here
User avatar

Joined: Thu Apr 23, 2009 6:44 pm
Posts: 4141
Location: Exeter
Reply with quote
I'm currently in the process of teaching myself some more programming, and would (I think) really benefit from some fairly basic level explanations to what is really meant in practice by certain concepts and terminology. About the only one I've come across that I fully understand is DRY, and that seems pretty straight forward. Does anyone know of any good, non-language specific guides to concepts like 'agile', REST, MVC etc. as all the explanations I have seen seem to be written in terms that are really aimed at people who have been doing this for a good while longer than I have.

_________________
"The woman is a riddle inside a mystery wrapped in an enigma I've had sex with."


Sat Mar 16, 2013 9:31 am
Profile WWW
I haven't seen my friends in so long
User avatar

Joined: Thu Apr 23, 2009 7:35 pm
Posts: 6580
Location: Getting there
Reply with quote
Well mvc and many other things like it. (I suppose dry would fit in there loosely). Come under the idea of design patterns.

Ie ways of structuring code in order to achieve a result.

The first book I read on the subject is Head First Design Patterns. The code examples are written in Java but the content is relevant to all object oriented languages.

Might be worth giving that a try.

It covers all sorts like mvc, factory, singleton, decorator, etc...

_________________
Oliver Foggin - iPhone Dev

JJW009 wrote:
The count will go up until they stop counting. That's the way counting works.


Doodle Sub!
Game Of Life

Image Image


Sat Mar 16, 2013 9:37 am
Profile WWW
I haven't seen my friends in so long
User avatar

Joined: Thu Apr 23, 2009 7:35 pm
Posts: 6580
Location: Getting there
Reply with quote
Any chance we could move this into the Programming forum? :-)

_________________
Oliver Foggin - iPhone Dev

JJW009 wrote:
The count will go up until they stop counting. That's the way counting works.


Doodle Sub!
Game Of Life

Image Image


Sat Mar 16, 2013 9:42 am
Profile WWW
Spends far too much time on here
User avatar

Joined: Thu Apr 23, 2009 9:40 pm
Posts: 4876
Location: Newcastle
Reply with quote
jonlumb wrote:
Does anyone know of any good, non-language specific guides to concepts like 'agile', REST, MVC etc.


Are there any areas in particular you want to learn about as you have a methodology, an architecture and a design pattern there.

Agile as a concept is to make the dev process that, agile. From the waterfall method being fixed and unforgiving with changes and amendments. Agile is a way to develop a project that is open to change. Other development systems such as Kanban (using bins for work to manage workload) and Scrum/Scrumbut (lots of mini dev cycles called sprints each releasing a 'minimum viable product') fall under agile.

REST - http://en.wikipedia.org/wiki/Representa ... e_transfer not much else to explain really...


MVC takes the separation of converns system quite literally, along with MVVM. MVC is separated into 3 sections (using a web site as an example):
Model - Products, users, news articles etc (database)
Views - Ways to present that data (markup)
Controllers - Processors (back end logic)

it's a way to make the code clean and manageable as it's separated as to what it does

_________________
Twitter
Charlie Brooker:
Macs are glorified Fisher-Price activity centres for adults; computers for scaredy cats too nervous to learn how proper computers work; computers for people who earnestly believe in feng shui.


Sun Mar 17, 2013 1:16 am
Profile
Spends far too much time on here
User avatar

Joined: Thu Apr 23, 2009 6:44 pm
Posts: 4141
Location: Exeter
Reply with quote
Thanks for the explanations there Finlay, they're most helpful. Those particulars were more given as examples of things I had come across rather than a definitive list I was looking to understand, I was just wondering if there was a site or resource somewhere that would work as a reference for very much a beginner to these kinds of things!

Edit: I think what I need to do at this stage is to just start building something and make some mistakes to begin with. I've spent so much time reading around things trying to make sure I get everything right from the off, and it's just not going to happen.

_________________
"The woman is a riddle inside a mystery wrapped in an enigma I've had sex with."


Sun Mar 17, 2013 1:15 pm
Profile WWW
I haven't seen my friends in so long
User avatar

Joined: Thu Apr 23, 2009 6:36 pm
Posts: 5150
Location: /dev/tty0
Reply with quote
I think trying to find explanations that aren't language specific might be difficult. You'll not necessarily know that you'll need a design pattern, or a framework, or a methodology until you come to a problem that it solves.

While you are after something language neutral, what language are you learning? If it's something like Java, or one of the various C languages, the language is often similar enough to easily translate the design patterns. If it's something like Perl or Python it might be a little more difficult, though certainly not impossible.

jonlumb wrote:
Edit: I think what I need to do at this stage is to just start building something and make some mistakes to begin with. I've spent so much time reading around things trying to make sure I get everything right from the off, and it's just not going to happen.


I think this is the best idea. My friend makes a lot of programs that work, but are poorly put together. I generally know best practises but am then put off by the extra work that putting things together properly usually adds. You probably want to strike somewhere in the middle :P


Sun Mar 17, 2013 1:53 pm
Profile WWW
Spends far too much time on here
User avatar

Joined: Thu Apr 23, 2009 6:44 pm
Posts: 4141
Location: Exeter
Reply with quote
forquare1 wrote:
I think trying to find explanations that aren't language specific might be difficult. You'll not necessarily know that you'll need a design pattern, or a framework, or a methodology until you come to a problem that it solves.

While you are after something language neutral, what language are you learning? If it's something like Java, or one of the various C languages, the language is often similar enough to easily translate the design patterns. If it's something like Perl or Python it might be a little more difficult, though certainly not impossible.

jonlumb wrote:
Edit: I think what I need to do at this stage is to just start building something and make some mistakes to begin with. I've spent so much time reading around things trying to make sure I get everything right from the off, and it's just not going to happen.


I think this is the best idea. My friend makes a lot of programs that work, but are poorly put together. I generally know best practises but am then put off by the extra work that putting things together properly usually adds. You probably want to strike somewhere in the middle :P


I think it's a slight pendulum reaction to the software I support at work. You could pretty much upload the whole thing to www.thedailywtf.com as a living example of how not to write web based applications. It works, but the back is just a horrible, horrible mess, and every basic bit of best practice is broken in it somewhere. I only dabble on the edges of it as I'm first line support and it's bad enough, but some of the violent swearing I hear from the dev's and other people that work under the covers more is really quite impressive.

As for language, I'm currently proceeding with Ruby / Rails as it seems the best fit for what I want to do.

_________________
"The woman is a riddle inside a mystery wrapped in an enigma I've had sex with."


Sun Mar 17, 2013 4:40 pm
Profile WWW
Spends far too much time on here
User avatar

Joined: Thu Apr 23, 2009 9:40 pm
Posts: 4876
Location: Newcastle
Reply with quote
jonlumb wrote:
Edit: I think what I need to do at this stage is to just start building something and make some mistakes to begin with. I've spent so much time reading around things trying to make sure I get everything right from the off, and it's just not going to happen.


Yep, starting with an idea is a good place to begin, I always find it easier on projects to start with an idea and go from there (like the current site I did, I had a clear set of tasks to achieve which made planning/implementing a lot easier).

The concepts vary platform to platform in implementation, the C# MVC is different to that of PHP for example.

Starting with good habits is IMO the best way to begin, I keep finding myself doing bad habits picked up from the old job for the sake of speed in getting it done at the cost of performance/readabaility/maintainability for anyone else working on it

Starting with Ruby isn't a bad start as it's pretty popular (rails is a framework, much like .Net and Mono are for C#), I'm looking into improving my scripting with Powershell at the minute and also picking up nuances of Mono for writing some code for the Raspberry Pi and Android devices, there are just some features of .Net that no other language has that are awesome (LINQ mainly) that I enjoy using

I'd also suggest you look at Javascript, Ruby is an OO language, and Javascript isn't, having the difference between the two is a good thing to know in programming. If you were going down a non web approach I'd suggest F# and C# as both use a common framework (.Net) and C# is an OO language, F# is what is called a functional language (and preffered by some companies)

_________________
Twitter
Charlie Brooker:
Macs are glorified Fisher-Price activity centres for adults; computers for scaredy cats too nervous to learn how proper computers work; computers for people who earnestly believe in feng shui.


Tue Mar 19, 2013 12:22 am
Profile
Spends far too much time on here
User avatar

Joined: Thu Apr 23, 2009 6:44 pm
Posts: 4141
Location: Exeter
Reply with quote
Cheers Fin, that's all worth knowing. I'm slowly forming a rough plan of attach in my head, and breaking everything down into more discrete tasks just to help promote a sense of achievement along the way!

I've purchased a Ruby and a Rails book from Pragmatic and I'm working through the first few chapters of both, just to get the core bits under my belt. I'll then start working on the project I have and pick up the rest as I need it.

_________________
"The woman is a riddle inside a mystery wrapped in an enigma I've had sex with."


Tue Mar 19, 2013 9:14 am
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 9 posts ] 

Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.