# Frequently Asked Questions
There's a lot to think about when you're starting to learn how to code/program. We'll try to answer some of the most common questions you probably have when it comes to learning how to code/program.
# What language should I learn?
There is no "right" programming language to learn first. And there's also no "wrong" language to learn first since most programming languages have similarities and similar to learning a new language from another country, once you've learned a programming language, you should be able to pick up other programming languages. As an example, I started learning C/C++ in school and then the school eventually started teaching C#. After school, I started working and learned Java. I switched jobs and then picked up Ruby and PHP. After another job change, I switched to JavaScript/Typescript and also a lot of CSS. And these days, I still use JS/Typescript but also been doing a lot of Android development in Java and Kotlin.
# How do I build a website?
There's a lot of things you could learn to build a website, but I would recommend starting with HTML as good starting point. HTML is the most basic building block for websites. It's a pretty straightforward language and it's probably not as complicated as something like Java. Along with HTML, you'll probably come across CSS which is primarily used to define how things are laid out by the browser. This helps make websites look the same regardless of what browser you're using.
# How do I build a mobile app?
There's two main ways of building a mobile app, you can build it natively or you can use a cross-platform framework. I'm sure that sounds like a foreign language, so let's explain what native and cross-platform mean. Building a mobile app natively means you're building an iOS (Apple) app in either Objective-C or Swift and you're building an Android app in Java or Kotlin. Building natively means you're building your app twice (once for iOS and once for Android) if you want it available to iOS and Android users. On the other hand, a cross-platform app is built once with something like React Native and then React Native does the work of making an iOS and Android app for you. Building an app with React Native means you're using JavaScript and while it sounds like it would be less work than doing things natively, the trade-off is that you might find limitations of what React Native can do and things might not look exactly like it would have if you had done it natively. So the the tradeoff is building something only once with a cross-platform framework vs having full control over how things look and behave.