Learning resources for junior programmers

In eMAG, our developers use over 20 technologies to build and update almost 70 internal apps. They work with agile methodologies like SCRUM and Kanban. They link their projects to business needs, understand the end users and come up with new ideas to improve their journey. A lot of knowledge gathered through experience, peer learning, offline trainings and online courses.

To share that knowledge with younger pros, we have built the eMAG Talent Internship — a two-month experience that helps our colleagues connect and teach our interns. In our internship we welcome around 10 interns/ year in the Technology team, but happily, we have another channel to reach many more young pros — TechLabs.

Our mentors this year gathered a bunch of resources and we have helped them connect everything in this article. A go-to guide if you are a tech-savvy youngster, who wants to learn something new.


PHP is one of the simplest server-side languages out there, and it was designed primarily for web development. Learning PHP is good because not only it adds one more language to your tool belt, but also because there is a large number of sites currently built with WordPress, a content management system (CMS) built with PHP.

PHP & Symfony cheat sheets & tutorials

Symfony is a PHP web application framework and a set of reusable PHP components/libraries.

JavaScript Documentation and best practices, powered by AirBnb:

JavaScript is a programming language commonly used in web development. It was originally developed by Netscape as a means to add dynamic and interactive elements to websites.


Python is a general-purpose, versatile and popular programming language. It’s great as a first language because it is concise and easy to read, and it is also a good language to have in any programmer’s stack as it can be used for everything from web development to software development and scientific applications.

REST API tutorials


Automatic Testing

In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.

Hopefully you’ll enjoy it and find it helpful.

This year, we are searching for explorers to join our Technology crews in Bucharest, Craiova and Iasi. If you want to meet the people behind these resources and learn directly from them, read more about our internship here.