1

So I have been working on a few projects as a, I suppose more Front-End oriented, Web Developer, customising Wordpress themes, styling plugins and the like.

I would like to get some meatier projects going in the direction of Back-end development.

However I am struggling to get projects in this domain. I've been doing online courses in Javascript, jQuery, and a SQL refresher, but I could continue doing those for ever and not get a project to pay the bills.

My view of what back-end development means would be mainly handling databases and managing server config. Please correct me if I'm wrong, that would mean a back-end developer would mainly write interface code to retrieve and store data?

So my question: What kind of software does a full on 'back-end' developer write? And what technologies / skills are required for doing so?

edit: I changed the question to be more precise as requested in the comments. :)

  • 1
    This is three questions in one. Slim it down. it's very, very broad – Xavier J Apr 11 '16 at 16:42
  • @codenoire: I changed the question a bit, is it more to the point now? – Pitt Apr 11 '16 at 20:19
  • 1
    Possible duplicate of Marketing new skill or line of business – user152 May 6 '16 at 8:40
2

As a full-stack developer myself with an emphasis in backend development and the owner of a small web development studio, I wouldn't hire you for back-end work. You're not a back-end developer, yet. As a back-end developer, you're responsible for 3 main components: Database, Server Configuration/Architecture, and Application Design and Development.

In the following paragraphs, let me try to give you an idea of some of the things you'll find in backend development. When working wth the database, you're not just writing SQL queries, but making sure that your database structure is efficient, optimized, and, if it's a relational database, normalized. You're not just setting up Apache and mod_php on a Linux box (or deploying a pre-configured machine), but you're helping to decide what servers will be the best for the project. You'll probably be responsible for making sure that any teammates have a consistent development environment and tools like vagrant, grunt, gulp, bower, composer, etc. shouldn't scare you. You may be working with platforms-as-a-service like Heroku and debugging against their idiosyncrasies or working with a unique cloud platform like AWS. You have to make sure that the system is up to date, and that there aren't any glaring security holes.

You won't just be writing SQL queries in your application layer, you'll have to understand which language and framework will be best for the job. You'll probably also work with an ORM or at the least a DBAL in your application. You should understand test driven development, agile methodologies, DRY, SOLID, and have incorporated those principles into your coding. You have to know how to avoid time-complexity and memory-complexity issues, and you must know how to mitigate the top 10 web application security risks (XSS, CSRF, SQL injection, etc.).

If you'd like to become a back-end developer, here are some recommendations:

  1. Build a useful site or two using one of the mainstream backend environments/frameworks. My first suggestion would be node.js, since you already know javascript. If you also master mongodb and nginx, paired with your front-end angular chops, you'll be able to advertise yourself as a MEAN stack developer. Other stacks that you'll find the majority of development work in are: LAMP/LEMP (linux, Apache/nginx, mysql/postgresql, and PHP), Ruby on Rails/Sinatra/Roda combined with Unicorn/Puma and nginx, and IIS/.NET stack.

  2. Work with an established development team. I learned a lot when I worked with a couple of excellent development shops as a supplement to their in-house teams. They had some excellent developers who pushed me to learn more.

  3. Don't start advertising as a backend developer if you've never had a backend job. Ease into it. Start by advertising full-stack development with an emphasis in front-end development. This is the position I'd start you in if I were to train you to do full-stack development (which appears to be where you want to go anyways).

  4. Keep asking questions, but make Google your best friend. Also, you should spend a bit of time working on your marketing and sales process if you want to take on the complete development of a websites for well-paying clients. I've been freelancing for about 2.5 years now. I just recently figured out how to break the time barrier, and it's a learning process to do so effectively.

  • Thank you for your insight! You wouldn't happen to have some links for good resources on the different coding principles? Specifically DRY and SOLID, and how to avoid complexity bloat. – Pitt Sep 3 '16 at 2:21
  • @Pitt, Yes. I recommend using Google to look up the kinds of resources you find most helpful (blogs, stackoverflow, wikipedia) and searching Reddit/HackerNews for opinion discussions. On writing good, clean code, there's a video series by the well-respected Robert Martin. The resource that first opened my eyes to writing efficient code was the free course at Codility. I highly recommend it. Lastly, when you've become a better programmer, check out The Imposter's Handbook. – Ben T Sep 5 '16 at 5:28
0

Continue doing the projects you're getting to pay the bills, but start asking your current client for the types of projects you'd like to take on. You'd be surprised to find you can get what you want by simply asking for it.

As far as marketing to new clients goes, transition your online presence towards being a more back-end developer. This doesn't just mean change it on your twitter bio and resume, it means start blogging about backend stuff and make sure that everything you put out in the world is backend related. Become the go-to guy in your niche for backend development.

0

There are a few things back end developers do. You are on the ball but let me state everything just to be clear.

Back end developers are responsible for the management, manipulation and sometimes even the obtainment of data from the user on client side (front-end is known as client side and back-end is known as server side). Some skills and technology needed to be known are/can be .NET framework, Node.js, React.Js, Angular.js and of course much more. Essentially, a client makes a request on a page and it is the back-end developers responsibility to decide how the webpage will respond. An example would be a webpage obtaining data from the user. When the user selects 'save', the back-end needs to determine what to do with that data.

That is not all. Back-end developers are also responsible for the set-up and deployment of the website. A website is essentially a group of files located in a folder located on some server with a DNS pointed at it (all set up by the back-end guy).

I recommend looking into the above frameworks and languages above as a start. The .NET framework might be the best start as it is easy to complete full-stack projects (front and back end). Also, IIS manager would be another thing to look into when it comes to the configuration and deployment of a webpage on a server.

Hope this helps!

  • 1
    "Some skills and technology needed to be known are/can be ... React.Js, Angular.js" Those are front-end frameworks, not back-end frameworks. Not really relevant unless OP is planning to be a full-stack developer, but since he's asking about back-end development specifically... – Josh1billion Jul 5 '16 at 21:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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