Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am an student learning web development by my own, I am very interested in back end development where can i start to learn?

share|improve this question

closed as not a real question by Jonathan Khoo, ChrisF Feb 14 '12 at 8:39

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

Could you maybe be a little more specific? For instance, do you wish to learn how to communicate with specific types of database(s); e.g. MySQL, Oracle **g, MongoDB, etc? Or are you interested in learning PHP to start? – V_P Feb 13 '12 at 21:02
I am just a newbie but i am searching to learn and understand the basics of back end, i am very interested in node.js and dont know anything about databases. – Rolando 'Rolilink' Perez Feb 13 '12 at 21:08
up vote 5 down vote accepted

Try this: Go ahead and create a simple database about students and the courses they've enrolled.

|Student|-*----- Enrolls -----*-|Courses|

Now, what you need to do is create a simple 'web page' for starters - where you can view any/all of the following:

  • List of all courses
  • List of all students
  • List of students registered in a particular course
  • List of courses taken by a particular student

Now, read what @Pablo has posted in his answer. Remember the keywords.

Now, go ahead and program your application to query the database (Data Access Layer). You'll land up with a 'Data Access Object' (DAO) for each table i.e. 3 objects in this case - their job is to query the corresponding table and return the results (roughly speaking).

The 'data' got by these DAOs is put into another object that will be transferred (to the caller) or returned with populated data - Data Transfer Object (DTO).

You'll use the DTO's to show the content on the views (part of front-end development, as per your terminology).

Where/what is the business logic, I hear you say? Well the business rules is the bulleted list above of 'what all to show' - the business logic is that layer above the data access layer that has asked for the corresponding data :)

Once you write this simple application and read through Pablo's links and my answer - the world will be a better place :D (at least from the point of view of writing backend software :)

Best of luck!

PS: If you are getting stuck at any stage, it means you need to learn how to do it or just ask for help :)

share|improve this answer
Where is Pablo's link? How can I get this link? – inherithandle May 4 '14 at 16:17

Try these links as starting points

Data Access Layer

Data Transfer Objects

Data Access Objects

Business Logic

share|improve this answer
Who has time to propagate simple changes through four layers of code? – kevin cline Feb 14 '12 at 5:37
You don't have to follow this 100% but it's actually quite a simple structure when put in place properly – John Shaft Feb 14 '12 at 6:33

Pablo gave some good suggestions.

I would also hop into IRC: in case you need more experienced resources. People love to hack around on individual topics.

Also can teach you some fundamentals about client side coding.

Right now - with the way the industry is going, I would not label yourself as a "back end" developer.

Get a firm grasp of data structures, logic, design patterns, syntax and for the love of god learn to do research and get familiar with scientific methods.

Get those down and it won't matter what roll you're going to be thrown into - you'll have good foundations.

share|improve this answer
Are there any general programming chans on freenode? (probably, finding a large linux room on local jabber community is a better solution) – kagali-san Feb 13 '12 at 22:48
There's a #programming channel and language specific channels. – Sterling Hamilton Feb 13 '12 at 22:56

You can start where I did, with "Agile Web Development with Ruby on Rails." It's fast and fun. This is an excellent way to get some exposure to relational databases and an MVC web architecture.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.