Dev Talks Archives - SoftUni Global https://softuni.org/category/dev-talks/ Learn Programming and Start a Developer Job Fri, 07 Oct 2022 07:35:16 +0000 en-US hourly 1 https://wordpress.org/?v=6.1.3 https://softuni.org/wp-content/uploads/2022/04/cropped-SoftUni-Global-Logo-Square-notext-32x32.png Dev Talks Archives - SoftUni Global https://softuni.org/category/dev-talks/ 32 32 Acing The Web Developer Interview – A Guide [Dev Talks] https://softuni.org/dev-talks/web-developer-interview-guide/ https://softuni.org/dev-talks/web-developer-interview-guide/#respond Fri, 30 Sep 2022 14:26:57 +0000 https://softuni.org/?p=23287 This article will walk you through the steps of the interview process, giving you some samples of the questions you can expect and advice on how to answer them.

The post Acing The Web Developer Interview – A Guide [Dev Talks] appeared first on SoftUni Global.

]]>

There are a lot of steps you need to take before going to an interview. Even when you complete them all, applying for your first programming job can be an intimidating process, especially when you do not have any professional experience to back up your technical knowledge. A good way to showcase your practical competence is to set up a GitHub profile with all the projects you have completed so far.  In addition to assessing your coding skills, an interview serves as an opportunity for the recruiter to get to know you better and determine whether or not you would fit well into the company culture.

Although every organization has a different interviewing policy, the process usually includes the following steps: 

  • Initial Conversation with a hiring manager;
  • Technical Interview with a software developer;
  • Coding Challenges.

There are three general groups of questions corresponding to each stage of the interview process – personal, technical, and practical. To give you a better idea of what to expect, we made a list of the most common ones and included hints on how to best answer them. 

Personal Questions

In most cases, you will first speak with a hiring manager, who will ask you open-ended questions common to most job interviews, irrespective of the industry:

  • Tell me about yourself.
    Hint: You do not have to go into too many personal details. After all, you are there on a business matter. Share what sparked your interest in programming and what you expect to gain from the role you are applying for. Explain why you are a good fit for this position, and which of your skills and abilities would benefit the company and make you stand out as a candidate. 
  • Where do you see yourself in five (or ten) years time?
    Hint:
    The purpose of this question is to find out if you plan in the long term and whether your goals align with the position you are applying for. 
  • How did you hear about our company?
    Hint: Be prepared with specific information about the company. Look for information in forums, blogs, on the company’s Web site, etc. Research their goals and mission and the position you are applying for and mention how they align with your future plans.
  • What are your greatest strengths and weaknesses?
    Hint: Mention actual personal qualities that are relevant to the current position. Give context, details, and an example from your own experience or a potential situation in which you would use these strengths to get through a challenge.
    When talking about your weaknesses you want to give a well-thought answer that does not sound too rehearsed. The best way is to give an example of a small shortcoming you are working on overcoming. Share what you have learnt from the process and how you will use the experience in your future work.
  • What are your hobbies and interests?
    Hint: To dig deeper into your character, the hiring manager might ask you about your interests outside of work. Mention hobbies that you are really into, but make sure to clarify that they will not affect your dedication to the job. Sharing your interests outside of work is a genuine way to show your personality and connect with the interviewer. 

Technical Questions

The interview will continue with a test of your technical knowledge in the form of some behavioral and theoretical questions. At this stage, you are likely to have a software engineer who will ask you progressively harder theoretical questions. Although the technical part of an interview is highly dependent on the job requirements, there are some general questions at the start, like:

  • Why did you choose this programming language, and what interests you about it?
    Hint: Express your understanding of the technology you chose. Describe its features, advantages, and disadvantages, as well as the applications you can develop with it. To show that you have at least a basic understanding of other languages, you can also draw comparisons with some of them.
  • Describe the steps you take to develop a program, from getting the assignment or an initial idea to its final execution.
    Hint: Explain the actual sequence of steps you take when developing a program. Interviewers are particularly interested in your project planning process, what coding techniques you use, and whether you follow the best practices that guarantee high-quality and readable code.
  • How do you debug your code and approach problems?
    Hint: Since troubleshooting and debugging are crucial components of a software engineer’s work, it is important to describe how you handle issues. This will demonstrate your level of logical and algorithmic thinking and problem-solving skills.

The more in-depth questions are usually theoretical, so it is entirely up to you to be prepared beforehand. This is a sample list of technical questions for four of the most popular programming languages for web development, as well as a separate section about Object Oriented Programming (OOP).

Java

  • What are the main features of Java?
  • Why is Java platform-independent?
  • What is the difference between the JDK, JRE, and JVM?
  • How do Heap and Stack memory differ?
  • Explain the access modifiers used in Java.
  • What is the role of the garbage collector?
  • What is Final word in Java used for?
  • What is the difference between Stack and Queue?

C#

  • What are the main features of C#?
  • How is C# compiled?
  • What is the difference between managed and unmanaged code?
  • Explain the different types of classes.
  • Explain the access modifiers used in C#.
  • What are boxing and unboxing in C#?
  • What are the main differences between Array and ArrayList in C#?
  • What is the difference between throw exception and throw clause? 

Python

  • What are the main features of Python?
  • What is the difference between list and tuples?
  • What are the built-in data types?
  • What is a namespace?
  • What is PEP?
  • How is Python interpreted?
  • What are local and global variables?

JavaScript

  • What are the main features of JavaScript?
  • What are the data types in JS?
  • What is the difference between ViewState and SessionState?
  • What are JavaScript Cookies?
  • What is the difference between pop() and shift() method?
  • What are the disadvantages of using innerHTML?
  • What are the different types of errors in JavaScript?
  • What is the Strict Mode in JavaScript, and how can it be enabled?

OOP

  • What are the principles of OOP?
  • What are the features of OOP?
  • What is the Singleton Class and how to implement it?
  • What is inheritance?
  • What is the difference between a class and an object?
  • Explain superclass and subclass.
  • What is the difference between method overloading and method overriding?

These questions can be asked specifically about your projects, in case you have any uploaded on your GitHub profile. The interviewer might be interested in discussing the technologies and practices that you used to develop them.

Coding Challenges

In addition to the theoretical questions, you might be given a problem to solve. It can be a take-home assignment or a coding challenge to do live during the interview. Make sure you are familiar with the syntax of the programming language required for the position you are applying for, because a coding challenge may require you to debug a block of code or determine what its result would be. It is possible that the code is intentionally made confusing in order to gauge how you would respond when faced with a challenge or in a stressful situation. In this case, the most important things are to stay calm, fight off any anxiety, and try to find a logical and well-structured solution to the problem. Demonstrating genuine enthusiasm for coding, algorithmic thinking, and a desire to learn is sometimes more important than coming up with the right answer.

Listed below are some basic junior coding challenges and hints on how to resolve them:

  • Factorial
    The factorial of a positive integer is the sum of the multiplication of all the integers smaller than that positive integer. For example:
    4! = 4*3*2*1 = 24
    5! = 5*4*3*2*1 = 120
    Task: Write a program that takes a positive integer as an input and calculates the factorial of that number.
    Hint: To solve this problem, use either a loop or recursion.
Factorial-Formula
  • Palindrome
    A palindrome is a sequence of characters which reads the same backward as forward. For example, “radar”, “rotator”, and even longer phrases like “pull up if I pull up”.
    Task: Write a program that takes a string as an input and returns if it is a palindrome.
    Hint: You can: 
      1. Check if the input is a string;
      2. Turn it to lower or uppercase;
      3. Reverse it (using a method or a loop);
      4. Check if the reversed string is equal to the input string;
      5. Return the result.
  • FizzBuzz
    Task: Write a program that counts the numbers from 1 to 100 on a new line.
    If the number is divisible by 3, print “Fizz”.
    If the number is divisible by 5, print “Buzz”.
    If the number is divisible by both 3 and 5, print “FizzBuzz”.
    Otherwise, print the number.
    Hint: Make a loop that iterates over the numbers, and for every number, check the given conditions using the remainder operator. Be careful with the order of conditions because it can be crucial to the end result.

  • Fibonacci
    The Fibonacci sequence is a series of integers (the Fibonacci numbers) like the following one:
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34
    Every number after the first two (0 and 1) is the sum of the two preceding ones:
    2 is the sum of the preceding two numbers – 1+1
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34
    3 is the sum of the preceding two numbers – 1+2
    And so on.
    Task: Write a program that takes a positive integer N as an input and returns the N-th element of the Fibonacci sequence.
    Hint: The easiest way to solve this is to use recursion, like in this example of Java code:
				
					public int fib(int n){

if (n<2) return n;

return fib(n-1) + fib(n-2);
}
				
			
  • Anagram
    Anagrams are words with the same number of letters, but they may be arranged differently. For example, race and care, listen and silent.
    Task: Write a program that receives two strings as an input and returns true if they are anagrams.
    Hint: Sorting the two words and then comparing them is the quickest way, but it is not the best solution because usually sorting algorithms are time- and memory-consuming.
    Another approach is to generate HashMaps of both words and then compare them. Use the HashMaps to check if they contain the same elements and if these elements occurred the same number of times in both maps.

Conclusion

Most people are anxious when going to an interview, especially if it is their first time.
Preparing in advance will always work in your favor giving you a leg up over the other candidates and the chance to make a good impression. Having an idea of the general process will help you come up with the best answers to the most common personal, technical, and practical questions when interviewing for a software engineer position.

The post Acing The Web Developer Interview – A Guide [Dev Talks] appeared first on SoftUni Global.

]]>
https://softuni.org/dev-talks/web-developer-interview-guide/feed/ 0
All The New JavaScript Features Coming Up with ECMAScript 2022 https://softuni.org/dev-talks/all-the-new-javascript-features-coming-up-with-ecmascript-2022/ https://softuni.org/dev-talks/all-the-new-javascript-features-coming-up-with-ecmascript-2022/#respond Thu, 25 Aug 2022 08:48:25 +0000 https://softuni.org/?p=22801 In this article, you will learn about the new JavaScript features of 2022 and how to use them to ease your work as a software developer.

The post All The New JavaScript Features Coming Up with ECMAScript 2022 appeared first on SoftUni Global.

]]>

The thirteenth edition of ECMAScript Language specification was officially approved on June 22, 2022. With its release, new features were added to the JavaScript language:

  • Method .at();
  • Object.hasOwn();
  • RegExp: match indices(‘d’ flag);
  • Error: .cause;
  • New members of Classes;
  • Private Slot Checks;
  • Top-level Await.

Now let’s find out more about each new feature.

Method .at()

The method .at() is supported by indexable values like Array, String, or TypedArray. It takes a positive or negative integer value and returns the element at the given index. 

In this example, there is an array with three elements, which means that its length is 3. The first element is at index 0 and the last is at index array length -1 (in this example at index 2).

To check what the element at a certain index is, use the bracket operator (animals[0]). For indexes out of the range, the program returns “Undefined“.

				
					let animals = ["Cat", "Dog", "Cow"];

console.log(animals[0]);
console.log(animals[animals.length - 1]) 
console.log(animals[animals.length])

//Cat
//Cow
//undefined

				
			

The new feature works exactly like the bracket operator but it allows negative indexing of elements. The last element is accessed easily by replacing animals[animals.length – 1] with animals.at(-1)

				
					let animals = ["Cat", "Dog", "Cow"];

console.log(animals.at(0));
console.log(animals.at(-1));

//Cat
//Cow

				
			
				
					//Example with a String
let string = "Hello, World!";

console.log(string.at(-1));

//!

				
			

Object: .hasOwn()

Object.hasOwn() returns true if the specified object has the indicated property as its own property. If the property is inherited or does not exist, the method returns false.

Object.hasOwn() is intended as a replacement of Object.hasOwnProperty()

Before:

				
					let user = {
name: 'John Doe',
role: 'Admin'
};

console.log(user.hasOwnProperty('role'));
console.log(user.hasOwnProperty('age'));

//true
//false


				
			

After:

				
					let user = {
name: 'John Doe',
role: 'Admin'
};

console.log(Object.hasOwn(user, 'role'));
console.log(Object.hasOwn(user, 'age'));

//true
//false

				
			

RegExp: match indices(‘d’ flag)

ECMA Script 2022 introduced a new /d flag for Regular Expressions. It provides some additional information about the start and indices position end of each match in the input string.

Without the new feature the following information has been provided:

				
					let string = 'hello1helloAll';
let regEx = /hello(\w)/g;
let result = [...string.matchAll(regEx)];
console.log(result[0]);
//[ 'hello1', '1', index: 0, input: 'hello1helloAll', groups: undefined ]

let string = 'hello1helloAll';
let regEx = /hello(\w)/g;
let result = [...string.matchAll(regEx)];
let regEx2 = /hello(\w)/dg;
let result2 = [...string.matchAll(regEx2)];
console.log(result2[0]);


				
			

With the /d flag there is an array with the indices of the different elements that match the regex:

				
					[
  'hello1',
  '1',
  index: 0,
  input: 'hello1helloAll',
  groups: undefined,
  indices: [ [ 0, 6 ], [ 5, 6 ], groups: undefined ]
]


				
			

Error: .cause

With the Error .cause, you can add more essential information to the errors you receive. You should specify the error options as a second parameter, and with the “cause“ key you can pass the error that you want to chain.

Before:

				
					const weatherNow = async (city) => {
    try {
      const response = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=67a20d293903cbcf9aab38633b30fbf9`);
      const info = await response.json();
      const description = info.weather[0].description;
      return description;
    } catch (error) {
throw new Error('Something went wrong')
    }
  }
 
try {
    await weatherNow('');           //Empty string
} catch(error) {
    console.log(error);
}

//Error: Something went wrong
    //at weatherNow (<anonymous>:8:7)
    //at async <anonymous>:13:5

				
			

After:

				
					const weatherNow = async (city) => {
    try {
      const response = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=67a20d293903cbcf9aab38633b30fbf9`);
      const info = await response.json();
      const description = info.weather[0].description;
      return description;
    } catch (error) {
throw new Error('Something went wrong', { cause: error })
    }
  }
 
try {
    await weatherNow('');        //Empty String
} catch(error) {
    console.log(error.cause);
}

//TypeError: Cannot read properties of undefined (reading '0')
    //at weatherNow (<anonymous>:5:39)
    //at async <anonymous>:13:5


				
			

New Members of Classes

Static class fields and methods are not used on instances of a class. Instead, they can be called on the class itself and are declared using the static keyword. Static methods are often utility functions and helpers, whereas static properties are useful for caches, fixed-configuration, or any other data we do not need to be replicated across instances.

Before:

				
					class User {
    firstName = 'Jon';
};
  
console.log(User.firstName); 
  
//undefined

				
			

After:

				
					class User {
    static firstName = 'Jon';
};

console.log(User.firstName); 
  
//Jon

				
			

Private Slot Checks

EcmaScript 2022 added new features such as private instance fields, methods, and accessors. To initialize a private method or a field before you had to add an underscore at the beginning of its name, but this did not guarantee that the method/field will be private. Now, you just need to add a # at the beginning of the method name to have it declared as private.

It looks like this:

				
					class User {
    firstName = 'John';
    lastName = 'Doe';
    #role = 'Admin';
}
 
const adminUser = new User();
console.log(adminUser.role); 
  
//undefined
				
			
				
					class User {
    firstName = 'John';
    lastName = 'Doe';
    role = 'Admin';
    #sayHi() {
        return this.firstName + ' ' + this.lastName + ' with role ' + this.role + ' says Hi!';
    }
}
 
  const adminUser = new User();
  console.log(adminUser.sayHi());      
  
//TypeError: adminUser.sayHi is not a function

				
			

Top-level Await

Before ECMAScript 2022 await could only be used in the scope of asynchronous functions. Now the await keyword can be used outside of an async function within a JavaScript module. This means that a module waits for its child modules that use await to execute before it runs itself.

				
					const response = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=london&appid=67a20d293903cbcf9aab38633b30fbf9`);
const info = await response.json();
const description = info.weather[0].description;
console.log(description);
				
			

We will receive an error:

				
					SyntaxError: await is only validin async functions and the top-level bodies of modules
				
			

With ECMAScript 2022  it works fine and you will see the following:

				
					//clear sky
				
			

Conclusion

Nowadays when technology is rapidly evolving being up to date is an important part of working as a software developer.

The EcmaScript specification for 2022 contains some significant changes that aim to provide convenience and efficiency in programming by allowing you to write more expressive and concise code. After reading this post, you are now familiar with all of the new features and it is up to you to choose which of them to use into your JavaScript programming.

The post All The New JavaScript Features Coming Up with ECMAScript 2022 appeared first on SoftUni Global.

]]>
https://softuni.org/dev-talks/all-the-new-javascript-features-coming-up-with-ecmascript-2022/feed/ 0
Cybersecurity Expert On Phishing, Cyber Hygiene, And Device Safety [Dev Talks #4] https://softuni.org/dev-talks/cybersecurity-expert-on-phishing-cyber-hygiene-and-device-safety/ https://softuni.org/dev-talks/cybersecurity-expert-on-phishing-cyber-hygiene-and-device-safety/#respond Fri, 19 Aug 2022 13:05:33 +0000 https://softuni.org/?p=22868 Lyubomir Tulev, a cybercrime expert, shares valuable information about the types of malware and ways of dealing with them.

The post Cybersecurity Expert On Phishing, Cyber Hygiene, And Device Safety [Dev Talks #4] appeared first on SoftUni Global.

]]>

Let us introduce you to Lyubomir Tulev. He is a cybercrime expert who has been working internationally for more than 10 years on cybercrime investigations in countries like New Zealand, Russia and many others across Europe. In 2015 he was recognized by the Federal Bureau of Investigation (FBI) as one of the top 10 international cybercrime experts. He is in the private sector now and his work involves penetration testing, social engineering, consultancy and cyber forensics. He is also a trainer for Information Security Management course at SoftUni. Lyubomir shared more about his professional motivation as well as practical tips that will help you protect yourself and your devices from cyber attacks.

Helping And Protecting People Has Always Been His Driving Force

“The fact that I have been involved in the police structure for seven years means that I have been first inspired to help and protect people.”

After 7 years on the force, he decided move to the private sector in search of career growth. The inspiration behind this move was a friend. Lyubomir still helps people but his main focus is on companies in need of strengthening their cyber security.

Basic Measures Against Cyber Attacks

Cyber-Security-Hacker

“The Coronavirus pandemic has spread across the globe and the one positive thing about this is the opportunity to rediscover the methods of transformation of our digital lives. On the other side, it possesses many obstacles coming from the hackers.”, says Lyubomir.

He explains that now, when people are spending more time at their homes working remotely, hackers are more likely to attack their devices and business. In order to protect from potential cyber attacks, people have to take basic measures like:

  • Securing the Wi-Fi connection and monitoring the connected devices;
  • Using VPN to access business infrastructure;
  • Securing the endpoint device – laptops, tablets, mobile phones;
  • Being aware of phishing emails and other possible cyber attacks.

“In cyber security, there is a saying that the employees are actually the weakest possible link in the security chain within an organization. I don’t really think so. My idea is that we have to look at the emloyees as a firewall.”, says Lyubomir

According to him, raising awareness among employees about cyber security is important for business because if they are well educated on the topic, they can become a ‘human firewall‘ that protects the company from within.

How To Recognize A Phishing Email

“Usually, the phishing emails are giving a sense of urgency. This is because hackers do not want you to have enough time to think about it carefully.”

He explains that there are three types of phishing emails depending on their content:

  • With attachments;
  • With a phish link;
  • With a text that requires you to send valuable information.
Cyber-Security-Email

“Usually, the phishing emails are giving a sense of urgency. This is because hackers do not want you to have enough time to think about it carefully.”

He explains that there are three types of phishing emails depending on their content:

  • With attachments;
  • With a phish link;
  • With a text that requires you to send valuable information.

If you receive an email with an attachment, Tulev advises to download it, check it with some publicly available software for virus scanning, and then finally open it.

If there is a link that you are instructed to follow, do not click on it, instead hover the mouse over it. In the bottom left corner of the browser you will see the address this link will take you, and compare if the destination matches the one stated in the email.

The last possible scenario is receiving a malicious email with just text. In this case, open the email header and check – if you reply, does it go back to the same address it says it came from? If there is a third party listed there, this email is probably phishing.

Common Types Of Cyber Attacks

“If we are talking about businesses, the most common cyber attack is the ransomware. It is vast majority of cases that we are dealing with.”, shares Lyubomir.

The ransomware encrypts all available files on the attacked device. The hacker then wants a certain amount of money to decrypt the files. However, there is no guarantee that they will do it after you pay the ransom. This is why having a backup stored remotely is so important.

Cyber-Security-Password

He adds that, “Other cyber attacks that happen to businesses and people are usually related to their credentials. Be very careful with your passwords. They are an object of many types of attacks like credential harvesting, password spraying, and brute forcing.

We, as cyber security professionals, always have to think about three elements of the information: confidentiality, integrity, availability.”

Lyubomir further explains what this means:

  • Confidentiality – to protect the data at any stage, make a remote backup, and set up access control;
  • Integrity – to not let a hacker modify the information and to protect the backend to avoid SQL injections;
  • Availability – to make sure the data is available when needed and use cloud storage.

To Be Aware Is To Be Protected

Lyubomir stresses: “Be aware what the attackers may use in order to take advantage of you. Train your people and yourself on what attack vectors are and how to recognize them in order to protect yourselves better.”

He adds that there are more examples of social engineering attack vectors like USB flash drives, smishing (SMS), and vishing (voice-using frauds).

How To Become A Cybersecurity Expert

Lyubomir has some advice for everyone interested in becoming a cybersecurity specialist: “When you put a lot of effort to improve yourself in one specific field of cyber security, you will become an expert only in this field, not in the cyber security generally. If you want to become an expert on cyber security you have to put a lot of effort in different fields like cyber forensics, penetration testing and consultancy.”.

“Businesses are now thinking more and more about digitalizing. This means that they will need the consultancy of cyber security experts. So, yes, I definitely foresee that the demand of cyber securty professionals will grow in the next couple of years.”, says Lyubomir.

The post Cybersecurity Expert On Phishing, Cyber Hygiene, And Device Safety [Dev Talks #4] appeared first on SoftUni Global.

]]>
https://softuni.org/dev-talks/cybersecurity-expert-on-phishing-cyber-hygiene-and-device-safety/feed/ 0
Java or Kotlin – What Is Better for Android Development? https://softuni.org/dev-talks/java-or-kotlin-what-is-better-for-android-development/ https://softuni.org/dev-talks/java-or-kotlin-what-is-better-for-android-development/#respond Fri, 29 Jul 2022 14:24:52 +0000 https://softuni.org/?p=22752 In this article, we examine the differences between Java and Kotlin and their strengths and weaknesses to help you make a decision when choosing a programming language for Android development.

The post Java or Kotlin – What Is Better for Android Development? appeared first on SoftUni Global.

]]>

When it comes to Android development, two of the most popular programming languages are Java and Kotlin. While Kotlin, which was released in 2011, is still being developed, Java has been around since 1995 and is open source, making it one of the most widely used languages. However, Kotlin has been taking off since 2017 when Google included it as an official Android development language along with Java.

If you’re new to Android development, the question of whether to use Kotlin or Java will probably not be on your mind at first. You will most likely opt to use Java until you become more familiar with the platform and decide what language would better suit your needs. But once you start becoming more confident with your Android development skills, choosing between Kotlin and Java will be a bit more difficult as both languages have some advantages and drawbacks, which we will examine in this article.

Java

Java is a versatile and powerful programming language that can be used for a wide range of purposes. It is platform-independent and object-oriented. Platform independency is possible since the language uses byte-code and once compiled, the code can be run on any machine irrespective of its operating system. Also, using the principles of object-oriented programming increases the flexibility and reusability of the code.

Benefits-Of-Java-Infograph

Java does not use explicit pointers. This means that developers can not access the memory directly from the code. Also, programs are executed inside the Java Virtual Machine (JVM), providing additional security to the code. If an unauthorized method tries to access a private variable, the program fails to compile and prevents the system from a crash.

Java is widely used and has a large community of developers who are continuously creating new libraries and tools to make development easier. Moreover, Android Studio, the official IDE for Android development, is based on JetBrains’ IntelliJ IDEA, which also supports Java development.

Kotlin

Kotlin is a new language developed by JetBrains. It is a statically typed programming language. Just like Java, it uses byte-code which can be executed on the JVM. It can also be compiled into JavaScript. It has intuitive, easy-to-learn syntax. 

Benefits-Of-Kotlin-Infograph

Kotlin is compatible with Java and can be used alongside existing Java code. In fact, its purpose is to interoperate with code written in Java and improve it while using Java libraries and frameworks. This leads to reducing the boilerplate code, making it simpler, easier to read and understand, and safer in terms of potential bugs. Moreover, you can write Gradle code in Kotlin, allowing you to build iOS applications.

Kotlin is concise and expressive, meaning that you can write less code to accomplish the same task. This can lead to fewer errors and a faster development process overall. An example of reducing the boilerplate code is using the Data Classes.
You can see a side-by-side comparison of code written in Java and in Kotlin on the graphic below.

Class-Definition-Java-Kotlin-Comparison

Kotlin has null safety built-in, which eliminates the risk of NullPointerException (NPE) errors since it fails to compile whenever an NPE may be thrown. It also supports higher-order functions, lambda expressions, and operator overloading, making the language a combination of functional and procedural programming.

Although it is a new language, it is gaining a lot of popularity in the development community. However, there are still some drawbacks to using Kotlin for Android development. The language is not yet as widely adopted as Java. This means that the learning resources are limited. Also, the community of Kotlin users is smaller so finding help and support, or experienced developers for your business may be more difficult. 

Conclusion

Kotlin and Java are both great options for Android development. They each have their own strengths and weaknesses that should be considered. Kotlin is a younger language, but it has many features that make it a great choice for developers. However, the concepts of Android SDK are based on Java so learning the basics might be useful. Moreover, it is still the most popular language for Android development and additional knowledge would definitely will be an advantage to you.

The answer to the question “Java or Kotlin?” depends on your preferences and what you are looking for in a programming language. One thing is certain – learning both will benefit you by expanding your tech stack and improving your coding abilities.

The post Java or Kotlin – What Is Better for Android Development? appeared first on SoftUni Global.

]]>
https://softuni.org/dev-talks/java-or-kotlin-what-is-better-for-android-development/feed/ 0
How to Become Google Expert Developer? [Dev Talks #3] https://softuni.org/dev-talks/how-to-become-google-expert-developer/ https://softuni.org/dev-talks/how-to-become-google-expert-developer/#respond Thu, 16 Jun 2022 14:10:31 +0000 https://softuni.org/?p=21300 Say hello to Iliya Idakiev. He will take you into the world of Google Developer Experts

The post How to Become Google Expert Developer? [Dev Talks #3] appeared first on SoftUni Global.

]]>

Meet Iliya Idakiev. He is a Google Developer Expert (GDE) in Angular and Web Technologies and he has been working with JavaScript for over 7 years. He teaches at Sofia University and has been running his own company (Hillgrand) for almost 5 years where he develops various web applications. He likes to organize and participate in JavaScript events and he and his team have a YouTube channel (commitjs). 

Today he is here to answer some questions you probably have about the process of becoming a GDE.

What inspired you to become a developer?

“My experience began at University. My major was Informatics. I was studying C++ and also working with .NET and C#. Then I decided to learn JavaScript. Shortly after that, I started teaching JavaScript and opened my own company.”

How did you become a Google Developer Expert?

“To be a Google Developer Expert means to be recognized by Google for the things that you do for certain technologies. I wanted for a long time to become a Google Angular Expert. I was organizing events and a lot of courses. I started to go to conferences and I met with a lot of people who were already Google Developer Experts. So one day I decided to go on several interviews and everything went pretty smooth.”

What is the process of becoming a Google Developer Expert?

“First, you have to be recommended by another Google Developer Expert and you must send all the background that you have (open-source projects, events, courses, etc.). You need to contribute to the community. The person from Google will check your background and you will have 2 or 3 interviews (personal and technical). Among all the benefits of becoming a Google Developer Expert, the biggest one for me is that you get recognized by Google and people look at you differently.”

What is your experience with contributing to open-source projects?

“When you are working on some application and you are using some modules, at a certain point you will start to discover issues with these modules or new features that can be added. If you have time, you can fix these issues or add new features and make a pull request. This is a way to become a contributor.

Another way is to open-source the useful libraries that you developed in your projects.”

How do you relax?

“I like walking and traveling to peaceful and beautiful places. I was a DJ before and still do it from time to time.”

What are the projects that you are working on?

“I mostly do private JavaScript-related training. I like live coding, which is much more interesting and effective for the students. One of the biggest projects we developed is the Front-End of a customer portal for monitoring and controlling off-grid and hybrid power systems. It was very challenging, and I am proud of this project.”

When do you realize that you are successful?

“This is other people’s decision, not mine. But I can say that I succeed when I accomplish my goals.”

What tips for success would you give?

“I think that everyone should find what he/ she is happy and enthusiastic about and try to become the best in it. Do not focus on the money/ salary, but focus on becoming better in what you do. Dedicate yourself and do not give up. This will make you successful.”

How did you manage to stay motivated?

“Going to meet-ups and knowledge sharing is very good and useful. This will keep you awake and inspired.”

What advice will you give to young people who study at University?

“The University is a place where you can learn something that is going to be like a base for your life ahead. My advice is to start teaching other people as soon as you can because this will make you better in your field. Be a part of the community that is doing what you are doing and try to solve other people’s problems (for example, on Stack Overflow). Sharing knowledge is amazing!”

Do you have a favorite book on programming?

“I would recommend books like “Clean Code”,Clean Architecture”, and “Enterprise System Architecture”. It is wise to invest time in something useful for your field. Also, GitHub is the best “book” that I would recommend.”

How do you see yourself in 5 years?

“My goals are to develop my company and give my team a better working environment. I see myself still teaching other people and contributing to the community.”

The post How to Become Google Expert Developer? [Dev Talks #3] appeared first on SoftUni Global.

]]>
https://softuni.org/dev-talks/how-to-become-google-expert-developer/feed/ 0
An Insider’s Perspective on the IT Industry https://softuni.org/dev-talks/an-insider-perspective-on-the-it-industry/ https://softuni.org/dev-talks/an-insider-perspective-on-the-it-industry/#respond Thu, 14 Apr 2022 15:00:00 +0000 https://softuni.org/?p=18039 In this article, we will meet you with William Abboud. He is a software engineer with more than 8 years of experience. Today he is here to answer your questions.

The post An Insider’s Perspective on the IT Industry appeared first on SoftUni Global.

]]>

Meet William Abboud. He is a senior software engineer that decided to talk about his path as a developer so far. We asked William some questions that might help you start your career as a programmer.

How did you get into programming?

As a student, I liked computer networking. In 12th grade, I first had to write programs with C++ and Pascal. The materials were not enough, and I watched a few youtube video tutorials and got hooked. After I graduated, I moved to the United Kingdom and started learning computer science there.

Which language to choose if you are a beginner?

The thing is, after years of programming development, it doesn’t matter. You need to learn Algorithms and Data Structures, and from there, it will be easy. The real question is, what do you want to do with programming? It depends on what you want to do. But still, I will prefer C# and Python.

Would you recommend JavaScript for beginners?

Yes. With JS, you can quickly see results on your screen. You usually program web apps, and you can see your results almost immediately. In C# or Java, your first tasks are mathematical equations, but in JS, the problems are more interesting. For example, you will have to move a box from the left to the right part of your screen. JavaScript is easy to start with, but it is hard to master. There is a great community and good tools. You can debug with chrome and so on. There are a lot of solved problems on the web.

What is the difference between a front and back-end developer?

A front-end developer creates a user interface that the user interacts with. Everything that the user clicks and see is what a front-end dev does. The back-end developer works with data and ensures that the users see the correct data. There is a lot behind the scene logic. You cannot make a site without the two sides.

What are the perks of a programmer's job?

One of the main perks is flexibility. You can work remotely the job from another country. Most companies are ok with you not going to the physical location. The job pays well. It can be a very creative and satisfying job.

Is it true that for each new project, you have to learn something?

Yeah. You have to constantly be on your feet and search for new techniques and tools. It’s a field where things can change very fast in a matter of a year. You always need to learn. You have to be wary of what is trending and the best tools to solve programming problems.

Will Machine Learning replace Software Engineering?

Partly yes. It’s a great tool, but I don’t think it will happen fully. In the next 10-15 years, I don’t believe that it will happen. It will make my job easier but not take my job.

What would you say recruiters look for when hiring?

They always look for experienced people. They don’t want to hire inexperienced, but some companies have to hire junior developers. There is a deficit for junior developers. For me, the most necessary quality is passion and motivation.

How can you best prepare for a job interview?

Every company has a different interview process. What I would say, research a company and the position you apply for. Ask the recruiters questions. Search for typical interview questions on the web, and I believe that you will be ready for the interview.

Do you want to be like him? Become a programmer with comprehensive, up-to-date online classes led by an expert. Study in your own time and at your own pace. Go back any time and rewatch the lessons, if needed. Click the button below, and start your journey today!

Video Topics

In the video, William talks about the following topics:
  • How did you get into programming?
  • Which language to choose if you are a beginner?
  • Would you recommend JavaScript for beginners?
  • What is the difference between a front and back-end developer?
  • What are the perks of a programmer’s job?
  • Is it true that for each new project, you have to learn something?
  • Will Machine Learning replace Software Engineering?
  • What would you say recruiters look for when hiring?
  • How can you best prepare for a job interview?

The post An Insider’s Perspective on the IT Industry appeared first on SoftUni Global.

]]>
https://softuni.org/dev-talks/an-insider-perspective-on-the-it-industry/feed/ 0
Starting Your First Job in The Software Industry https://softuni.org/dev-talks/starting-your-first-job-in-the-software-industry/ https://softuni.org/dev-talks/starting-your-first-job-in-the-software-industry/#respond Thu, 17 Mar 2022 06:00:00 +0000 https://softuni.org/?p=14099 In this article, we will talk about all the steps to starting a developer job. Be of the 5% of job candidates that go to an interview.

The post Starting Your First Job in The Software Industry appeared first on SoftUni Global.

]]>

In this blog post, we will talk about starting your first job in the software industry. There are a lot of steps you need to do before you go to an interview and get hired. You need to study hard and educate yourself, to learn concepts like coding, algorithmic thinking, software development, and different frameworks. Even if you are highly skilled, you can lose your opportunity because someone sent a better job application. We will look at all the steps required for a successful start.

Video: How to Start Your First Tech Job? Tips and Tricks from Svetlin Nakov

In this video lesson, we cover the following topics about preparing and starting your first developer job:

  • Steps to Start a Developer Job
  • Defining Your Career Goals
  • Learn the Software Engineering Profession
  • Prove Your Experience
  • Your GitHub Portfolio: Tips and Tricks
  • Find Junior Tech Job Positions
  • Prepare to Apply for a Dev Job
  • The Job Application
  • The Job Interview

How Can You Learn Software Development?

You can learn from many resources such as tutorials, books, video courses, and code camps. Nevertheless your studying material, you need to do your hands-on exercises and projects. You learn nothing with just watching.

It takes from 2 to 3 years if you are learning in parallel with your daily job, and it may take 6 to 12 months if you study 12 hours per day. From 2000 to 3000 hours of practice is enough for starting a junior dev job.

How Do You Prove Your Developer Experience without a Previous Job?

For starting any tech job, you will be required to have experience. Employers will typically ask for 1-2 years of experience for a junior developer. You can build your portfolio on GitHub. You can add your projects there and write good documentation about them. If you have no experience with GitHub, you can read our blog post about it here.

These are a few sample developer portfolios of our students from SoftUni, who have learned programming, created several practical projects in GitHub to prove their skills and started their first dev job in the software industry:

This is how you should document and showcase your portfolio projects (description + tech stack + screenshots + live demo):

Where Can You Find Tech Job Positions?

It is hard to find a junior job that will match your skills. On every job site, you can search:

your skills + “junior” or “intern”

In addition, you can ask your friends, colleague, and social networks. Now is the time to create a good LinkedIn profile. You can add Education, projects, and certificates to your bio and ask for endorsements. LinkedIn allows easy search for jobs.

search-job

How Can You Prepare to Apply for a Job?

If you are preparing to apply, your skills need to match the market needs. First, analyze the job market for junior positions. Seek what skills employers require and what you need to learn. Analyze each specific job position you want to apply for.

What Should My Job Application contain?

For a strong job application regarding a tech position your application should consist of:

  • Email
  • Portfolio of projects
  • Resume (CV)
  • Cover letter (CL)

You should carefully apply for a specific job. The letter should be individual for a specific position. You shouldn’t copy/paste your cover letter, or application message. You need to slightly adjust your CV to match the target position. You need to always write your cover letter from scratch for each position.

Will They Hire Me If I'm Invited to a Job Interview?

You should never rely on the job interview. Only 5% of the candidates are invited to an interview. If you don’t want to be from the 95%, you need to focus on the preparation. Study hard and build an impressive portfolio. Select your job position and apply carefully.

In case you are invited to an interview, you need to be prepared:

  • Research the company and learn as much as possible
  • Research the technologies from the job advertisement
  • Research typical questions for a job interview.

No matter how your applications go, you should not give up. Take note of each failure and prepare for your next interview. If you follow all our recommendations, in the end, you will most likely end up with a good starting job.

Lesson Slides

The post Starting Your First Job in The Software Industry appeared first on SoftUni Global.

]]>
https://softuni.org/dev-talks/starting-your-first-job-in-the-software-industry/feed/ 0