c programming

Learning Swiftly: How coding in a new language transformed my skillset as an engineer

Over the past few weeks, I have been working on an internal Johnson & Johnson application. Prior to this internship, most of the coding I had done was individual and never really dealt with user interfaces. When you’re coding with a team, you feel much more inclined to keep everything clean and follow good practices. It is important for any team member to look at any piece of code and know exactly what is going on.

Form has to follow function

Most of my experience in school and at home has been with Java, but everything that our team has been working on is in Swift. It can be intimidating to learn a new language, but it has been enjoyable. I’ve found that most of the concepts are the same with differences in syntax, but I have grown to like Swift during the time I’ve spent here.

The ability to work with user interfaces is one crucial skill that I’ve learned. Most classes in school are more concerned with concepts and less so with user interaction. Functional code is only half of the battle. If it isn’t aesthetic, then nobody will feel comfortable using it.

Learning through challenges

One of the biggest challenges that I have faced while working on the application is the lack of resources that exist in regards to Swift. Languages that I am used to such as Java or C++ have existed for decades and nearly every issue that you could encounter has happened to somebody else before. Swift is only a year old and still has a lot to work out. Not many people are using it at the moment, but it is likely to be very relevant in the future.

The way I have overcome this obstacle has allowed me to develop some important coding skills. I find myself debugging conceptually instead of syntactically. With other languages, it can be far too easy to find the same issue online and copy a line of code. With Swift, you might find yourself researching a similar issue in objective-C and applying it to your situation. While this may not solve the problem as quickly, I find myself developing a better understanding for why the problem arose and how it can be solved.

"A dragster themed stop light, a number of license plates, street signs, and even an area of wires and devices themed to be a wall of tools. These are just some of the interesting touches that make developers truly feel like they are in a garage."

The more you know...

My inspiration for learning and overcoming obstacles is the ease that comes along with it. Every new language that I learn is even easier than the previous one, and every obstacle I face is one that I’ll never need to solve again. All coding knowledge is cumulative, and the frustration that is involved decreases as your ability improves. The exposure to real world coding that I am getting at Johnson & Johnson has completely transformed my skillset as a computer engineer.

A few more details on my first Sharepoint application development project

“Sodala!” as we say in my home region when we finished something and are ready to start with a new task. As I’ve finished the first Sharepoint project last week, I’d like to provide you with a few more insights on the actual project. It’s already a little bit late, but I’m currently enjoying working on my next project, so it took me a bit longer to share my experiences with you.

This first Sharepoint project was kind of a training project for me to get used to the Sharepoint development environment but the cool thing about it is, that it was not only for training purposes. It is part of a bigger transition project and therefore it is actually now in use in a productive environment.

But let’s start from the beginning, why we had to redo this search tool. The search tool for specific certificates was already in place on the local intranet for a really long time and made use of several old fashioned methods and programming styles. As the local intranet is right now in a transition phase, it was the perfect moment to replace this outdated tool with an updated version.

So the first steps were to get all the necessary access rights to the development server and get familiar with the environment and its specific characteristics. The standard programming language we wanted to use was C#. As I was already used to the Visual Studio environment and VB.Net it was quite easy to get used to the programming language, as it’s quite similar except the syntax is a bit different.

After getting familiar with the existing code and the possibilities to improve the code and the functionality, I started working on it. As I haven’t developed anything on a Sharepoint server so far, the biggest challenge in this phase was to learn about the many methods on the Sharepoint server. There are always several equally good ways to come up with a solution to a specific problem and figuring out which method works well for which issue can be tricky. With a clear goal in mind and after a lot of troubleshooting with a tremendous amount of lessons learned, I finally managed to come up with the desired enhancements compared to the existing application.

The last phase in this project was the deployment phase. So this involved a code review and testing on the development server, as well as the deployment to the quality assurance server, testing again, documenting every step and every modification and getting all the necessary approvals for the implementation with the next change release to the production environment.

In the meanwhile also a fun event took place in our Fresenius headquarter in Lake Zurich, the Bean Bag Championship! Even though I’ve never played this game before we luckily made it to the second round but unfortunately we were defeated in this round without any chance :-( however it was definitely fun to play and I will introduce this game back home to my friends.

I know this was a text-heavy entry but I wanted to give you a little bit more insights in my actual work! But as one of the few well-known Austrians mentioned once in a while “I’ll be back!” soon with some more details about my exciting weekend activities!