Hi Agbojo,
It takes a lot of time and practice to develop an in-depth understanding - some concepts take months or years to fully explore. If you can find something you like making then it can help motivate you through the more difficult times. And keep in mind that no one knows everything in programming - we are all learning as we go
Hey Flavio,
So I can understand your question better, what motivates you to want to learn C# at this time? If I can understand this better I can probably give you more helpful information.
-Greg
Hey Warren,
If you are interested in developing applications you will almost certainly need to have access to a computer. Programming and app development is one of the few remaining activities that is still really hard to do on a mobile device.
For free options, some local libraries offer computers for general use, and you can find some application development sites (such as CodePen) available through your browser. If you are able to acquire your own computer (laptop or desktop), then you would be able to install your own software, tools, and development environment, which makes the process more complicated but also gives you more options.
Best,
-GH Greg
Hey Meg,
As a beginner, I’d suggest focusing less on the specific language until you know enough to know what you want to build. There are many programming concepts that apply to nearly any programming language, such as loops, branch statements, and objects. It’s good to understand these well before moving into creating an application.
Once you decide what kind of application you want to create, for example website or mobile app, then it’s a good time to think about what language and technology to use. Sometimes your choice will be wholly limited by the app you’re trying to create, but usually you have at least a couple of choices. Honestly, going with the most popular option is a good way to start until you have learned enough to consider other possibilities.
Ruby and Swift are a little more specific to the applications they are used for. To get a sense of language popularity I recommend this: https://insights.stackoverflow.com/survey/2020#most-popular-technologies
Hi Lucy,
You mentioned two areas that require more knowledge: subscriptions and ads. For both of these areas, app developers would need to learn about available integration options, which depend on which services you’d like to use. On iOS, Apple provides services in this area which your app can integrate with to provide subscriptions: https://developer.apple.com/app-store/subscriptions/
It’s complicated and not exactly a beginner-level topic, but I wanted to share the resource with you so you can have it available.
Before working up to that level, I’d suggest trying to integrate with some smaller or simpler services to build your own understanding of how to do this. A couple of ideas here include integrating with google’s login service (for mobile or web), or a social media service such as facebook’s sharing api.
Note that from a programmer’s point of view, service integrations like this are typically referred to as Application Programming Interfaces, or API, or api. An api is a developer’s way of working with another service. You use application interfaces yourself all the time, for example in an elevator - you push a button to pick which floor you want to go to and then the ‘application’ (elevator) send you up to that floor, makes a happy ‘ding’ noise, and opens the doors for you again. Programming interfaces usually work in a similar way - you tell them what you want to do and they tell you when it is complete (or not!).
Hey Anudeep,
We keep a pretty good list of resources on this topic:
https://support.grasshopper.app/t/super-charge-your-coding-skills/
Hope that helps too!
-GH Greg
It’s a myth with some truth to it
Let me put it this way: there are a lot of great apps out there built with native technologies (Java/Kotlin), and there are also a lot of bad apps built with those same technologies. Ditto for React Native or Flutter. These are really just tools that programmers use to try to make great and useful things.
If you are a writer then you can write great things using a pencil, a typewriter, or even a stick in the dirt. My point is that overall, the technology used probably matters a bit less than the work and craftsmanship that is put into creating a great application.
-GH Greg
Hey Franklin,
-
There are many directions you can go with coding, so I would first ask what you are most interested in doing? If you are not sure then creating a web page is a good place to start, and we have a course for this in Grasshopper: https://learn.grasshopper.app/project/intro-to-webpages
We unlock those three courses because that’s what we have available at this time, but that may change in the future. -
For website design, there are a few different approaches or disciplines for this. There is the purely visual component which usually involves training in something like ‘graphic design,’ more traditionally. There’s also the user experience or user interaction perspective, sometimes called UX as a field of study. Some websites also use even more specific skill sets such as motion or animation designers. Each of these is a topic in its own right and each has courses you can take to specialize. There may also be specific ‘website design’ programs and degrees now, I’m just not personally familiar with these.
-GH Greg
Hey Varun,
‘App’ can mean a few different things; sometimes a mobile app but it could also refer to a ‘web app’ such as gmail. If you’re talking about a mobile app then there are a few options available for platforms and languages, including so-called ‘native’ options that involve Java for Android or (commonly) Swift for iOS. If you are talking about a web app then javascript is a good option since it is supported by all browsers.
It’s hard to say something is highly recommend without saying what platform it’s for, but if you can be more specific about the application you’re hoping to develop then we can probably give more specific guidance.
-GH Greg
Hey Warren,
In Grasshopper, we currently have a couple of places that are free-form coding and don’t use the key-based editor:
- Intro to Webpages course
- For something more open (not a course), we also have the Gallery on web available to create anything with javascript
Outside of Grasshopper, there are a number of online resources that provide editors on the web. Some are listed here: https://support.grasshopper.app/t/what-is-best-ide-to-learn-java-script
- GH Greg
Hey Kavya,
Learning effective javascript takes practice and feedback. One option here is finding an open-source project that you are interested in a can contribute to. Look around on Github and see if there’s anything that is of interest there. As another option, there is a book titled ‘Effective Javascript’ which might also be interesting and give you some good ideas and examples of what good practices look like.
You don’t need to learn HTML & CSS before learning javascript, but since javascript is so frequently used for web pages and web applications it’s hard to avoid learning HTML & CSS for these kinds of development projects. Also note that HTML is not a programming language, it’s just a syntax for ‘marking up’ text, so it’s not as complicated or difficult as javascript itself. You can learn the core concepts of HTML here: https://www.w3schools.com/html/html_intro.asp
- GH Greg
Hey Filipi,
That’s great to hear that you’re enjoying the animations course! If you want to learn more, here are some options. Note that the animation programming we teach in Grasshopper is built on a library called D3, so most of these options also use D3:
- https://www.tutorialsteacher.com/d3js/animation-with-d3js
- More advanced but deeper explanations: http://duspviz.mit.edu/d3-workshop/transitions-animation/
- Advanced example but detailed walk through on what’s happening with examples: https://observablehq.com/@d3/learn-d3-animation
Outside of the D3 library, check out this tutorial on how to do animations in pure javascript - no library involved:
https://www.w3schools.com/howto/howto_js_animate.asp
-GH Greg
Hello Greg! I’m very very thankful for all your help!
I’m planning to build a native mobile app for Android. This is going to be an ecommerce app for my store with delivery tracking and online payment features.
I know Java is native for Android but Eric suggested that I should go for JavaScript to develop the frontend (UI) of the app.
The problem is I don’t know how to connect multiple languages in a single app!
If I use JavaScript and React Native for the frontend and Java for backend, will it still be a pure native app?
Thanks very much for your email
Hey Varun,
Thanks, I understand your situation better now. If you purely want to create an Android application then writing it in Java (native app) is a fine way to go - you’ll need to learn lots about Android’s mobile development platform first though. Eric’s suggestion for javascript on top of ReactNative is good but that requires you to learn about React and ReactNative as well. Either way there is a learning curve and both will take time to become proficient in.
If you do use ReactNative to create your application, there are cases where you need to connect multiple languages but they are somewhat advanced. The platform does let you do this however, and the docs for this are here: https://reactnative.dev/docs/native-modules-android
It is a pretty tricky topic though, so if you can find someone online or in person to help guide you that would make things a lot easier. It probably won’t be easy, even for professional developers.
Oh crud, that leads me to this question. Sorry for asking this many!
@Grasshopper_Greg
According to you, will I be able to build the app I mentioned (location tracking, ecommerce, online payment) , using ONLY React Native?
And, if I finally decide to build a pure native app with Java, how do I build the front end? Is a JavaScript frontend necessary for native apps too? Do native Java apps use Java for both the front end and the back end or do they use multiple languages?
This is the last question, I promise.
Thank you, once again <3
Thank you Grasshopper Team for your suggestion.
Hi, I am hoping you can help me. I’ve been waiting to see the answers to all these questions. Where do I go to find out see them? Please help and thank you.
I can’t say for sure because I don’t have experience with each of those services (location, commerce, payments). What we typically find is that there are 3rd-party or open source libraries that can add this functionality to React Native. For example, here is the ‘official’ library for location:
https://github.com/react-native-community/react-native-geolocation
So you’d have to do some research to see if all of the specific functionality you want is available for React Native, typically as libraries.
Re. your second question, the front end of the Android app can be written in Java, and javascript is not necessary. Generally, a native app in its entirety can be written in Java.
-GH Greg
Haha you did really want to leave your laptop in a trashcan?!
Thanks a lot for sharing your experience. I really like it.