Supporting the professional growth of the team

As an Engineering Manager I take the personal and professional growth of my direct reports very seriously. It is one of my core duties to make sure that, in my capacity, I have enabled them to learn continuously and advance their professional and soft skills. In this blog post I will share with you my formula how I support the professional growth of the team.

Understand who wants what

Every person is unique. Just admitting that defines the level of attention required to individualize the learning and growth experience. What exactly do I mean by that? Let us suppose you have a team member who is very much into data solutions. But, in their daily job, you constantly assign them frontend tasks. Maybe they will do the job, but I’m sure they will not operate at their optimal level if they don’t like frontend development.

With every one of my team members I do regular monthly (sometimes more often) 1:1 meetings. These meetings usually are for me to listen and them to talk. They are for me to understand what excites them, what bothers them, what makes them tick. I take notes and with every meeting I review my notes to check for deviations or changes. I also use these meetings to understand what interests them to understand them better personally and their professional interests.

Understanding the industry and market trends

I think it is of utmost importance for an Engineering Manager to be well acquainted with the trends in the industry and the market. In our vibrant industry, it is at the same time very difficult for us to be able to catch everything what is happening around us. Everyday we have a new framework coming up, a new cloud service, a new programming language update, and keeping up is a real challenge, so we do need to be able to filter critically the information that will be important for our future.

What has worked for me so far is to organise and classify information digestion. I use Twitter and LinkeIn to follow people behind the technologies of interest. I also follow the companies and communities behind the technologies that are in my and my teams area of interest.

This way I can keep myself up to date with what is in trend, what is being pushed and developed from big companies, therefore worth to invest time in.

Finding synergies with our company projects

Of course just knowing what are the trends and what the team members want to learn does not lead us anywhere. We have to match these two to create growth. So, how can we make these two ends meet?

We are lucky that the part of business we work in is very vibrant. We have more projects and backlog that we can manage to complete. In this backlog I constantly look to find opportunities where we can solve our business problems with innovative cutting edge solutions. I try to create opportunities where our important business goals are achieved by team mates implementing solutions with the latest technologies they enjoy. This way, a growth opportunity for the developers is created as well as our company benefits from innovative and up to date technical solutions. Win-win situation ūüôā

Enabling the team to jump on these opportunities

Of course, when adopting a new technology, being a new version of a language, of a framework, or a new tool, this would mean that the team has to spend time learning it. Therefore, I as a manager have to critically evaluate these opportunities to see if this makes sense. If that new thing we want to adopt help us move faster, safer or further in our work. It should make sense from the business perspective and it should make sense from the professional growth perspective as well. When these two ends meet, I seize these opportunities.

Conclusion

As managers we should help our colleagues to be very attractive for the market, but also should create an environment that the employees would not like to leave.

As employees, we always have to think from the perspective that we are hired to solve the business problems and bring value to the company. But also we have to keep in mind that without continuous learning and improvement our value bringing capabilities diminish by time.

As the famous quote goes:

CFO asks CEO: ‚ÄúWhat happens if we invest in developing our people and then they leave us?‚ÄĚ CEO: ‚Äú What happens if we don‚Äôt, and they stay?‚ÄĚ

Are Azure Certifications Valuable?

It has been years since I stopped taking certification exams and lately I decided to get back to that adventure. In September 2020 I passed exams to be recognised as Microsoft Certified Azure Solutions Architect Expert.

Arian Celina - Certified Azure Solutions Architect Expert

Before and after passing the exam, I asked myself the question which I have seen many people ask as well; Are Azure Certifications valuable? I believe the question is applicable not only for Azure Certifications, but in general for any industry certification. Are they valued by the community and employers? Do they make a difference in your career? I have also written about this topic in the past, and yet it seems the same questions are still coming up. Let me share my updated opinion with you.

From the motivational perspective, it is very important to clarify the answer to those questions so we know why we are putting all that effort to learn and prepare for the exams. I also think these questions should be rephrased with a reversed perspective. Before we modify question, let us first discuss about the value itself.

What is the value and who defines it? Who can tell if a certification is valuable? I think think there is no single source of truth for that. From experience, I have encountered employers and peers who value a certified professional more than someone who is not certified. I have also seen opposite. As someone who have interviewed more than 100 candidates so far, I can say both can be right and wrong.

I have met certified candidates who have not been able to defend their title with knowledge. So I have met people who were not certified on a topic but were more knowledgeable than their certified peers. I have also met certified people who were subject matter experts and knew their topic in detail, kind of detail that we do not easily learn by randomly playing with the technology.

When I reflect on my late Azure certification journey but also on my previous certifications for .NET and Java, what I remember is that while preparing for the exams I have often learned hidden details about the topics which I have not encountered during the daily work. Those hidden details then later have quite often have saved me time or effort and enabled me to bring better solutions into life. This in itself is a value for me.

Considering this, the revised question I think we need to ask ourselves would be:

What do we gain from this certification?


In my opinion, we should not get certified so other people value us more because we hold that title. We should do certifications to learn better the technology we like. Of course one can do that without taking the exams and without getting certified. It’s just that taking the exams pushes you to follow a certain curricula which is reviewed by experts and that often gives more structure to the learning.

I have been using Azure for years and have quite some experience deploying and running web applications on various forms of workloads, containerised and non-containerised. Yet, when I took the late exams for Azure Cloud Solutions Architect Expert certification, I learned a lot about some not so familiar topics to me, like migrations of Virtual Machines from on-premise datacenter to Azure, about backing up Virtual Machines, or about Express Routes. Taking those exams pushed me to learn more about those topics which probably I would not in my daily work.

As a conclusion, in my opinion industry certifications are valuable as they push us to get better at that topic and this inherently will make us a more valuable contributor to our team, company and community. When we do that, whether the certification is valued by our potential future employers plays a smaller role in answering this question.

My language learning framework

The most important lesson that I have learned in my career of almost 15 years in software development is that programming languages are just tools to solve real life or business problems. About 5 years ago I was doing full time .NET, then I jumped to Java for about two years, then I switched to Ruby and Rails, and just recently I started using Kotlin to create two microservices (don’t ask me why, the business needed it ;)).

Because of this, there is no point whatsoever to be bound to a language/platform religiously. The languages are tools but it’s the core knowledge of computer science and software development practices that prevail.

These changes have been inspired by different rationales, sometimes influenced by the employer and sometimes by the economic conditions of the runtime environment. E.g. hosting a Java web application during 2006 was way more expensive than a PHP application, therefore, I used PHP as a primary language for my web facing pet projects. So during my career so far, I have used Java, .NET, PHP and Ruby as my core languages and also have implemented small solutions using Kotlin, Javascript, and Python.

To adapt to this changing environment of ours I have noticed I had created a framework, which I call my language learning framework. The framework itself is not about the language per se, but about the whole ecosystem around that language. It came as a result of identifying unchanging things around any language ecosystem. E.g. no matter the type of language, there is a way to deal with strings, numbers or arrays. Or the language has some sort of collections.

With almost every language that I have used, I have had the need to also learn a framework to develop web applications, a framework to do testing, and other common things around the application. So out of this experience, here I share with you my language learning framework. It lists the things I try to learn or pay attention to when I start learning a new language.

I. Language
1. Runtime & ecosystem (general knowledge)
2. Syntax
3. Data types (if there are types)
4. Main constructs
4.1. packages/modules, classes and methods/functions
4.2. loops & conditioning
4.3. arrays
5. Core libraries
5.1. String manipulations
5.2. collections (lists, arrays, maps, sets)
5.3. math (rounding, sqrt, pow, PI)
5.4. important packages/gems/etc. and any language/platform specific library
II. Frameworks
1. Application development (evaluate popular ones and pick one)
2. Testing (unit & integration)
3. Main design patterns and in that language
III. Toolset & Other
1. IDE platform specifics
2. CI/CD
3. Deployment (does the docker & Kubernetes work or is there anything platform specific)
4. Community
5. important learning resources

Some of these items on the list are dead clear so you just follow it, but some of them are hard, like choosing which framework to use. How do you choose which framework to pick. Well, in those cases, I use different inputs to make my decision but most often it is an educated guess. What I consider is, I ask my colleagues/friends if they have experience with any of the ones I am considering and get their opinions. I also evaluate possible blog posts about them and also try to measure the popularity by checking the number of contributors, how often does a major version gets released, how many job openings I find requiring that framework, and based on all these inputs I narrow my list to two options. Then I try both of them with a certain simple scenario and I try to evaluate how easily I could implement that scenario and get a feeling of both and then decide. Out of all the factors I consider, how much I like it and how many job vacancies are there requiring that framework are two criteria that weigh most with me. The pleasure to work with is very important for me, but also having an opportunity to use it (have an employer/business which actually uses the framework) is also important in my opinion.

One important thing is, when I try to jump on a new language, I try to do all these steps in a relatively short period, potentially with max 2-3 months, and then try to repeat it at least 2 times with 2-3 sample projects. In this way I make it possible for my brain to remember it, otherwise, if it takes too long to go through the list, I forget things in between and the end result is not satisfactory.

This is not a definitive list and doesn’t include everything we need to learn to be productive in one language/platform, but it certainly serves as a good starting point for me when I want to jump into a new language.

Do you have a different approach? Share with us!

How to unleash employee creativity

At my current company, Springer Nature, we have a great benefit of having the freedom to dedicate 10 percent of our work time working for a side project, learn something new, or on anything that can help us learn something new. Our employer gave us this freedom so we can grow personally and professionally, but one observation I have had during these months that we are practicing this was that it also helps to unleash employee creativity.

How we do it?

This initiative firstly started as a Hack Day for developers. Then we renamed it to “10 percent time” so it can be more inclusive to other profiles that are part of our department, such as UI & UX designers, PMs, and POs. We spend every second Friday of the month by doing something other than work related stuff, something that would in one way or another help us learn something new. Sometimes we do an online course, test that new version of a library we use every day, evaluate a new framework or even learn a new programming language. Beginning of the day we do a joint stand up where we share our plans for that day with other participants. Sometimes someone likes somebody’s¬†idea and we join forces for that day to create something awesome. By the end of the day, we gather together and share what we have created and what did we learn. Some do a demo, some showcase their code and some just summarize their learnings. During this sharing session often people get the inspiration for their next hack day, or sometimes we realize that a presented idea could be of a benefit for the company to grow as a project and we pitch it to our colleagues and management.

What did we do during these days?

During the previous Hack Day, one of my colleagues did create a simple¬† NodeJS CRUD API as she wanted to learn NodeJS. On the other side, as I usually do backend stuff, from time to time I am quite interested to learn things about frontend. For a long time, I wanted to learn Vue.js, so I volunteered to create the frontend for that API. During those few hours of coding, we managed to do a simple Vue.js application and implement a frontend for CRUD operations of that API. The code can be found at¬†https://github.com/acelina/books-fe GitHub¬†repo. Of course, I didn’t become proficient in Vue.js in one day, but next time I need a frontend for my app, at least I know where to start and I value this.

In another case, me and a colleague of mine started a Hack Day project to improve the process of managing code challenges for our developer candidates. We worked on this project for  three Hack Days. The result was an application that included features like managing the automatic creation of a GitHub repo for a candidate, including there her code challenge and give her the privileges to commit to that repo. It also included the feature to manage the workflow of submission, so when the candidate creates a PR of her finished code challenge, the application will remove her from project collaborators and notifies us in a Slack channel that a submission is ready to be reviewed. It was a three fun Hack Days for two of us and it resulted in a production-ready application which eliminated manual labor. There are several other successful results which came out of this 10 percent time.

What we achieved?

I understand that the projects we do during these days are never ready for production, but we achieved to create a culture of sharing the knowledge with others and by it to foster employee creativity. This 10 percent time creates space for us to experiments with things we don’t have the time to experiment during our regular work days because of deadlines or priorities. It also helps us to grow professionally and personally. Sometimes it results in a useful thing for the company as well, and most importantly it helps us to unleash our creativity while having fun. As a developer, I value this a lot in a company, and I would recommend every company to start practicing it. You never know where brilliant ideas come from!

My impression of DevOpsCon 2017 Berlin

Lately I have developed interest on devops. From time to time I try to learn about the new possibilities to automate and optimize my software delivery process, and I find quite exciting to learn about what devops offers today.  I think all developers should at least know a little bit about system administration and devops to understand better the environment their applications are deployed and make themselves more productive. In this post, I will summarize my impression of DevOpsCon 2017 Berlin.

Last two days I had the opportunity to attend DevOpsCon 2017 conference in Berlin. The conference had a pretty busy agenda full of presentations on five different tracks and four different keynotes. The presentations covered broad subjects such as designing microservices, using tools like Jenkins to create container images, security of docker containers, managing delivery pipelines, managing deployment in a polyglot environment, etc.

What I liked: most of the given talks were about real life experiences from some companies and consultants on how they implemented or helped other companies implement devops in their company structure. Some shared their previous failures and what they learned from them, which I found very useful.

What I missed: most of the talks were plain presentations of slides and very little to no demo. It felt a little dry to just listen to people sharing their experience of using a tool without a single demo about it. I was expecting a lot more hands on demos.

What I didn’t like: some of the talks were given by the conference sponsors. As they were showing use cases around their products, sometimes the talks sounded more of a marketing pitch rather than experience sharing presentation.

As a takeaway from those talks and experiences shared, I understood that quite a lot of companies are already working towards having DevOps people on their teams, be it as a specialized position, or as a mixed responsibility of developers or operations people. I also understood that companies quite often are struggling to fit these positions into their current organizational structures and sometimes there is a need to change the way their teams communicate. Being a relatively new position, it is also one of the misunderstood positions as the responsibilities of a devops person are not quite clearly identified in most places.

Learning process of a software developer

Lifelong learning is a vital skill for software developers. Without continuous learning, I cannot imagine how could a software developer have a successful career in our days. But how can one keep up with the loads of information out there. The amount of information to be consumed passes far our ability to consume and learn. How do we develop ourselves as successful software developers? What strategies should we use? Here is the learning process I use, perhaps it could be useful for you too.

1. Practice

There is a good saying I like: “Practice makes perfect”. If there is one thing¬†that I would choose above all, it is the practice. Writing code is the single most important thing you need to do to get good at software craftsmanship. You may do it in different ways and different levels. Being a full time software developer I would say is the best way, but you may also work on your own or contribute to open source projects in your free time. Apart of full time serious projects, I find it also very useful to work on a side project. Side projects can be fun and may give you the opportunity to learn and enjoy what you do, and often, these projects can be turned to successful projects.

2. Following trends

Following trends is very important to keep your skills sharp. Knowing what is coming next in your industry is of utmost importance to excel in your career as a software developer. Following trends can be done in several ways and you may find which suits you best. You may choose to follow the industry leads in social media, or read regularly their blogs, or you might be just the guy who goes to the events of user groups and conferences. Following trends will show you what you need to learn next and where should you put your focus so you are trained well to cope with future challenges.

3. Video tutorials

Video tutorials have become the common way we consume information today. Videos have many benefits. We can consume higher amount of information in a shorter amount of time. Also, most people learn better when they consume information visually, and this makes watching videos a preferred way to learn new technologies. You may choose to subscribe to a learning site (e.g. PluralSight or Udemy), or you may choose to watch videos in Youtube, you have plenty of choices.

4. Books

Although we have several ways to consume information, I think books are the best choice when you want to learn a technology thoroughly. Tutorials are good to get a glimpse on a technology for evaluation purposes or to get an idea how it is working, but if you want to get a sound understanding of something, I think, books are still the best choice. They usually are more carefully written, present the information more completely and in a flowing order. Yes, they take more time to read and they are larger in volume, but they give you a better understanding and full perspective of a big picture.

5. Sharing

One of the best practices for learning better in my opinion is sharing your knowledge. Be it blogging, showing off your code in a user group, or teaching someone on a what you are good at, sharing your knowledge pushes you learn better what you know. Teaching challenges your understanding of a subject and helps you improve your knowledge. This is my main motivation why I write in this blog.

Summary

The learning process of a developer nowadays might be different and adjusted to custom habits and requirements, however, in my opinion, these are some of the best ways to learn new technologies and always maintain your skills. What are your learning habits? Share with us.

My weekend with Python programming language

This weekend was a long one for me. Unfortunately, I catched cold and had to stay the whole weekend home resting and waiting to feel better. While sitting and wondering what can I do (I wasn’t in a mood to work on anything), I decided to take a look at Python programming language. It’s been a while that I have developed a kind of interest to try this language but never had a chance to take some time out of a busy schedule. Many people were telling me good words about it, how elegant it is and how easy it is to write code using it, but I needed to try it to have my own opinion. Although I could only spend 2-3¬†hours during the whole weekend trying it, I would like to express my first impression of this¬†language.

What I liked

  • There are plenty of learning resources. Although I could have started with a video tutorial, I chose to start with this tutorial by google¬†which seemed to me quite concise and straight to the point. It was showing all important points without getting too much into details. Just what I needed.
  • Coming from a programming background, I found it extremely easy to start coding immediately in python. The language syntax may seem odd at the beginning but the learning curve is smooth. It’s easy to grasp the python way of coding, although, it may take some time to forget putting the semicolon at the end of the line though ūüôā
  • The language seems elegant¬†and rich in features. It has most of the features found in other languages such as Java, C#, and PHP.
  • The fact that you can write code in the command line was interesting to me ūüôā
  • Working with lists and tuple structures was extremely easy and handy.

What I did not like

  • The fact that there are no curly braces and semicolons at the end of the line might cause a little headache for those of us who come with a background from the C line of languages (C++, Java, C#, PHP, JavaScript, etc.). Omitting semicolons looked easier to me than maintaining the lining of code to keep track which code belongs to which block. After you get used to it, the whole code starts to look more elegant and easy to read.
  • You can define variable names same as built-ins overriding system variables. I think this could be a big point of confusion for newcomers.

Summary

I admit, evaluating a programming language by spending three hours learning it is extremely hard and might lead to biased judgments. However, I write this review solely because of my positive impression with this language. I like learning new programming languages as almost each of them have good parts and practices from which we all might learn and benefit. Certainly, python has its share in this and in my opinion is worthy to give a try. For me, my next step should be to find an opportunity to use it in a real life web application and see the experience ūüôā

What is your experience with python? Share it with us.

 

*python logo image source: http://www.vizteams.com/wp-content/uploads/2013/08/python-logo-master.png

5 reasons you should be a web developer

Over the plenty of career choices in the world economies, choosing what to do for living is not an easy decision. A healthy career comes out of finding the intersection of market demand and what you love to do. Being in the software industry for around fourteen years, and ten of them spent in web development, my career choice of web developer has come out of a funnel, starting as a desktop application developer and refining my knowledge to web development as the potential market started to emerge. But web development has changed dramatically last ten years. The possibilities of web applications often surpass those of desktop applications in market reach and sales perspectives. I will list here 5 reasons you should be a web developer.

1. You can work independently

Being a good team player is an essential skill required to be a part of any organization, but when it comes to starting a private business or wanting to earn some extra money in addition to your full time job, being able to work alone is equally important and a huge benefit. As a web developer, you can create web applications, web sites, themes, and many more digital products which you can easily monetize. You may sell gigs in sites such as Fiver, or create WordPress themes and earn some extra money by working an hour or two in the afternoons at your home .

2. You do not have a big startup cost

Developing web applications does not require huge computing resources. The startup cost is as cheap as having a moderate computer and an internet connection. Many of the software tools which are used to develop web applications are free of charge or cost less than $100. Nowadays, even the hosting providers have lowered the hosting prices quite a bit, and you may easily find good hosting to your web site(s) for ~$5 per month.

3. You can sell your work online

Being a web developer, you do not need any shipping or packaging of your products. You simply push your code to the hosting server and run it there. You may also easily do remote consulting work or create web sites and sell them in different market places. Envato is one of the companies that provides different marketplaces for different digital products, one of them being for WordPress themes: themeforest.net.

4. You may develop mobile applications with web development skills

Web development has evolved over the years, and with that, the support to browsers as well. In current days, you may easily pack a web application as a mobile application and publish it in Apple AppStore, Google PlayStore, or any other mobile app market. The user interfaces may often be very similar to native applications and may create a full featured mobile app with a plain web development skills, thus, allowing yourself access to a huge market and business opportunities.

5. You have plenty of tools and framework to suit your work style

As a web developer, you will have plenty of tools and frameworks which make your job easy in many different ways. Of course this is highly impacted by the platform you choose, but I would confidently say that, all major web development platforms and languages have good communities with good support and plenty of tools available to develop web applications and web sites. This will make your jump start to web development easier and time to market quite short.

If you have not yet decided which profile of developer you want to be, here are five reasons to be a web developer. Web developers have plenty of opportunities in front of them which suits the needs of different kinds of persons. You may be an entrepreneur or a full time professional developer, web development has a lot to offer to you.

What is the mission of a software developer

Nowadays, there is a great demand for software development out there. The world needs software solutions just about anything. From planning and running complex business and industrial services to planning and running your day. From execution of mission critical operations to playing for fun, almost everything is backed by a software. There are millions of software developers out there and yet the global need for them is not about to be met. The world needs a lot more software developers, but seriously, why do we need them, what is the mission of a software developer that is so important to the world economy?

Let us analyse first how a software developer grows. Basically, there are two major paths one may follow to be a software developer. One is to have a formal education (be it a university degree, or a formal training program) and acquire the necessary skills to develop software, and the other is to be an autodidact and teach yourself using plenty of available resources (books, online courses, articles, tutorials, etc.) about software development.

The self learning approach is very personal and it is hard to generalize the way one teaches himself therefore it is hard to draw conclusions that what process is followed or what the outcomes may be. Also, compared to the numbers, I am sure this group is the minority, and the majority of developers come from a more formal path.

The formal path, however, has a visible indicator how one is being trained in the field of software development. We can have a look at the curricula of many universities and analyze them. We can get a subset of subjects that are covered from most universities, or so to say core subjects,  and they are programming languages, databases, data security, algorithms, maths, web development, etc. (I am not focusing here on training programs as usually they tend to have a narrower focus on one technology or one aspect of it, and rarely on a complete process as universities do). Some universities offer also non computer science complementary courses such as on entrepreneurship, preparing business plans, biology, etc., but only as elective courses that are left on the will of the student if he or she wants to take it.

From the university curricula I have seen, I can draw the conclusion that most of the universities prepare the software developers as pure technical persons who are supposed to solve technical problems related to software development. But is this the reason world needs the software developers that much? Personally, I do not agree with this, and I keep asking myself the question:

What is the mission of a software developer?

Let us try to answer this by trying to find the answer to this question: What does a software developer do after the graduation? I can think of several answers to this:

1. Industry path: He or she is employed by a company who needs software solutions for their business needs (be it a software developer company, a bank, an engineering company, a distribution business, whatever…) and he/she works there trying to create software solutions for the needs of the company.

2. Academic path: He or she may decide to pursue further studies and be a researcher who continues to contribute to academia by teaching and to the knowledge by researching unknown solutions for existing technical, real life or business problems.

3. Entrepreneur path: He or she creates a solution for a real life problem or a business problem, makes a business out of it, and creates an enterprise which runs a business by providing a software solution for a business problem.

Of course it is not easy to sum up all available paths to follow, but in my opinion these three cover the major available paths to follow for a computer science graduate.

Now what can I see from these choices is that, none of them are about solving technical problems purely. What I can also conclude is that, solving a real life or business problem is what turns out to be the real reason why we need so many software developers today. From this, I can confidently say that

The mission of a software developer is to solve real life and business problems.

You may say that is something we know and it is obvious, what is the problem about this? Well, I have a lot of contacts with different developers, experienced ones and want to be ones, university trained and autodidacts. I am teaching programming courses myself on a university level and professional level for over 6 years now, and I have had the opportunity to deal with over 1000 students up to now. What I can see is that, software developers see themselves as technical persons who are there to solve technical problems and they do not care about the business world. All they are interested is that how a technology or a framework works and how they can use or advance it. That is it. They care about code quality, they care about unit testing, they care about code reuse, and lots of other technical characteristics of the software, but rarely they discuss about how usable their applications are, or how efficiently they optimize a business problem their software is addressing or what business value they have delivered with the software they have built. I am not saying that technical characteristics are unimportant, far from it, we should always strive to write the best quality code we can, according to best industry standards, using best practices, and best patterns we know. I am just stating that the most important thing is we deliver value with software. If there is no value, there is no point having unit tests, most clearly written code, or bug free code, as it will not be used.

But perhaps this is not their fault as the education system they are following is not preparing them to think in that way, and that is where our duty as computer science teachers come to a focus. It is us, everybody who teaches a computer science related subject, be it a university course, an online course, or tutorial series, we should communicate the idea that technology is there to solve real life and business problems. I do think that we should not grow technical persons who write code, but we should teach them to be problem solvers who provide value with their solutions.

What do you think? Leave a comment and let’s discuss about it. If you agree with my opinion and think this is a valuable point, please share it so it reaches a broader audience.

PHP Tutorial site

In many of my posts I have shown a positive attitude towards PHP programming language. Although it is not the language I use every day, I do consider PHP as one of the best programming languages for a beginner in web development because I believe it has a fairly easy learning curve. I am now announcing an initiative to create a small PHP tutorial site.

I have been teaching PHP for over four years, and it was always my language of preference when I had to explain web development concepts to someone. I have been teaching it in university level as well as a professional course, and I have seen that students have learned the most important parts of it very quickly.

As a supporting material to my courses, as well as to contribute globally in knowledge sharing, I am creating a new section in my site for PHP tutorials. You can see the page here. This section is going to be dedicated to several tutorials explaining basic concepts of PHP. This is¬†going to be an evolving project of online teaching¬†I am planning to¬†implement¬†during 2015, so I will be adding learning materials continuously. If you don’t want to miss anything, please subscribe, and you will receive them in your email.