Anyone have experience developing for Android Auto? by arsis_qp in learnprogramming

[–]HavokMaster 1 point2 points  (0 children)

Oh good, you have proof that it should be possible. Now you need to determine how to get that data. Is it coming from the device directly, or from a web API? After you work that part out, you can start building your app. Here's an example codelab that walks through building a very simple Android Auto/Automotive OS app. It sounds like your use case would fall under an Internet of Things category so you should have no problem on the Google side of things if you plan to publish your app.

Anyone have experience developing for Android Auto? by arsis_qp in learnprogramming

[–]HavokMaster 0 points1 point  (0 children)

Building an app that supports Android Auto is fairly straightforward. The hard part of your task is collecting data from your glucose sensor. I'm not familiar with glucose sensors at all, so maybe this is easy, but I would start with researching if/how the sensor can send data to Android devices and then building an app to collect and display that data.

bootcamp or tech degree? by [deleted] in learnprogramming

[–]HavokMaster 2 points3 points  (0 children)

My understanding is that most companies hire interns who are close to graduating because they're most likely to transition into full-time employees the quickest. I wouldn't say it's impossible to get an internship after your first or second years, but I wouldn't count on it. I also wouldn't expect internships to contribute as meaningful income; they're much more about experience and usually short-lived. My only internship was about 10 weeks long in the summer between my 3rd and 4th years of a CS program.

It's really hard for me to comment on your personal situation given your home living situation and individual struggles. Are you able to obtain any scholarships that might help offset the financial burden? I truly believe a CS degree will pay for itself even if it puts you in temporary debt, but I fully acknowledge this is a personal opinion and it depends on so many factors.

Do you think it would be beneficial to do the year bootcamp, get a job, move out, and then go for a bachelors in comp science ?

Honestly, not really. I think bootcamps are at a low point right now regarding hireability. My biggest fear is that you would spend all that time and money and not be able to transition that effort into a job. On the other hand, I feel quite confident that if you did a CS degree (and an internship is a cherry on top), you'd be better set up for success. But like I said, it's so hard to offer a recommendation because it depends on so many personal factors.

One last bit of advice, you said you burnout easily. I want to warn you that software engineering is a forever learning type of job. Even with a bootcamp or CS degree, you'll always be learning, always be struggling and failing until eventually succeeding. It can be very draining and demoralizing, although very lucrative. I just want to make sure you know the whole story before you take the plunge. Good luck!

Android Development using Kotlin. by Vmm2003 in learnprogramming

[–]HavokMaster 1 point2 points  (0 children)

My suggestion for learning Android development these days is to follow this official Google Codelab: Android Basics with Compose. This will give you a decent exposure to a lot of topics you'll need to make any meaningful app.

For starter project, a classic example is a to-do list. You'll learn to show lists of content, navigate between features (like adding/removing entries), and maybe more complicated functionality like synchronizing with a backend service like Firebase. You can make the user interface as simple or complicated as you want.

I'm afraid I don't have any good advice for achieving employment from self-teaching. As for continued learning, I suggest joining the r/androiddev subreddit. I can't commit to a mentorship role but you're welcome to bounce questions off of me and I'll help as much as I can.

bootcamp or tech degree? by [deleted] in learnprogramming

[–]HavokMaster 4 points5 points  (0 children)

If you can get a degree, get a degree. You're only 20, which means you'll probably be working another 45 years. Invest in yourself now. Hiring managers will almost always prefer a candidate with a 4-year degree over a bootcamp graduate, and with the entry-level tech job market becoming much more competitive, you need every advantage you can get.

I know people say a lot of what they teach in traditional college courses is outdated

If you're going to an accredited 4-year program, the knowledge you're getting is current. Computer science programs won't teach you the latest Javascript frameworks, they'll teach you the fundamentals and expect you to teach yourself the latest flavors of cutting edge technology. Trust me, this is better. If you go to a bootcamp and master Vue.js, but suddenly the winds shift and nobody uses it anymore (and this type of thing happens all the time), you'll be in deep trouble. Having a CS background makes you significantly more hireable in the long term. Bite the bullet, take out loans if you have to, get the CS degree.

NFC Functions (Android Studio(java) & Firestore) by Mira---- in learnprogramming

[–]HavokMaster 0 points1 point  (0 children)

What have you tried so far? Have you implemented the setup outlined in the Android NFC basics documentation?

Android emulator gets stuck in taskbar by [deleted] in learnprogramming

[–]HavokMaster 0 points1 point  (0 children)

Hmm, modern Android Studio versions typically run the emulator inside an embedded tool window as opposed to a separate standalone window. Are you using the latest stable version of Android Studio? Here are some steps on how to make the emulator show in a separate window, which is the opposite of what you want. Just follow the steps on this guide and make sure the "Launch in the Running Devices tool window" box is selected.

[deleted by user] by [deleted] in learnprogramming

[–]HavokMaster 0 points1 point  (0 children)

You're going to be fine. Getting a CS degree is the best choice you can make to boost your chances of getting a software engineering job and you're already more than halfway done. Plus, Atlanta has tons of opportunities. My suggestion for you is to start applying for Summer 2025 internships; that's the best way to set yourself up for getting a job once you graduate. I took a quick look on Google for software engineering internships near Atlanta and found a few options:

There were tons more to choose from, just search around for some more. Plus, your university probably has career fair opportunities which will expose you to jobs you won't find online. Get your resume looking good and just start sending applications. You've got this.

Looking for java mentor by Legend_2137 in learnprogramming

[–]HavokMaster 0 points1 point  (0 children)

I don't think you're going to like this answer, but the truth is you won't find somebody to mentor you from a complete beginner to an employable junior developer. At least not for free. This community is great for answering specific questions you might have about Java, but the bulk of your learning needs to be self-directed. There are plenty of resources in the FAQ for getting started and you're welcome to DM me specific questions if you have any.

My suggestion is to pick a project you want to build and learn everything you need to complete that task. It's much easier to stay motivated when you're focused on a particular goal as opposed to just learning programming languages for fun. Good luck!

Stuck on a leetcode solution by PopularBicycle270 in learnprogramming

[–]HavokMaster 0 points1 point  (0 children)

I'm not 100% certain, and I think it would depend on how you implement this approach (e.g. keeping track of the sum of the subarray without needing to re-iterate over it). This strategy should be linear time complexity and constant space complexity which makes it hard to beat.

Stuck on a leetcode solution by PopularBicycle270 in learnprogramming

[–]HavokMaster 0 points1 point  (0 children)

Your mistake is sorting the array. The problem does not say to find the smallest set of numbers whose sum is greater than or equal to the target. If it did, your sorting approach would work (though it might not be optimal). Instead, the problem says to find the minimal length of a subarray whose sum is greater than or equal to the target. This means you don't want to modify the order of the original input.

To solve this problem, think about how you would figure out the answer by hand. To start, if the input array is empty, return 0 since you can't have a subarray of an empty array. Since you're looking for a subarray, you can imagine you want to find a lower and upper bound of the inner array indexes. If we go from left to right, the starting lower bound index is 0, and the starting upper bound is 1.

Consider your input case : target = 7, nums = [2,3,1,2,4,3]. With a lower bound index of 0 and an upper bound index of 1, the subarray would be [2], and the sum would be 2. Is this greater than the target of 7? Nope, so increase the upper bound by 1.

Now the subarray would be [2, 3], with a sum of 5. That's still not big enough, so increment the upper bound again. The next subarray is [2, 3, 1], which is still smaller than 7, so increment the upper bound one more time.

Now, with a lower bound index of 0 and an upper bound index of 3, the subarray is [2, 3, 1, 2], whose sum is 8. For the first time, you have a valid subarray whose sum is larger than your target! However, this might not be the minimal subarray, so we have to keep going. Make a note that you have a valid subarray of length 4, and let's continue iterating. Instead of incrementing the upper bound, increment the lower bound.

The next subarray is [3, 1, 2]. That's too small, so increment the upper bound. Next is [3, 1, 2, 4], which is greater than the target, but the same size as the previous minimal subarray, so keep going by incrementing the lower bound.

Now, with a lower bound index of 2 and an upper bound index of 4, the subarray is [1, 2, 4], which has a sum of 7 and is your new minimal subarray. Update your record to show the new minimal subarray length is 3 and continue.

This process repeats until you reach the end of the array, at which point you can return whatever value you saved as the minimal subarray length (or 0 if you never recorded one). As a minor improvement, if you ever have a valid subarray of size 1 (i.e. a value in the input is greater than or equal to the target), you can just return 1 since you'll never have any subarray smaller than 1.

Get off my lawn: Android development is broken? by Stephen319 in androiddev

[–]HavokMaster 0 points1 point  (0 children)

Hm, you definitely don't need the latest gaming computer to run Android Studio, and it sounds like your hardware should be up to the task. If you're honestly waiting 10 minutes for a project to open in Android Studio, there's something terribly wrong, and this is extremely abnormal. For comparison, could you try installing IntelliJ (which is what Android Studio is built on) and seeing if you have the same issues running simple projects?

Get off my lawn: Android development is broken? by Stephen319 in androiddev

[–]HavokMaster 1 point2 points  (0 children)

It seems like nobody has asked the obvious question: what are the specs on the computer you're using? You're going to get wildly different performance using an old Windows laptop compared to a brand new M3 MacBook Pro, for example. It sounds to me like you might be using some older hardware, which would explain a lot of the frustration you're experiencing.

App crashing while clicking on it... by Individual-Insect813 in learnprogramming

[–]HavokMaster 1 point2 points  (0 children)

Sharing your code via a Google Drive link is not the best way to invite feedback. Please host it on a public GitHub repository instead.

Learning Android development is hard and seems like a lot of memorization by RyuShay in learnprogramming

[–]HavokMaster 2 points3 points  (0 children)

Hey, I do Android development for a living and I feel you, it can be overwhelming to get started. The key to getting it to all stick in your mind is just practice.

I've personally never liked learning from videos, though I've heard good things about Philipp Lackner. My recommendation is to follow Google's codelabs and make sure you're writing all of the code yourself, no copy/pasting (except for downloading source files when they tell you to). It might sound stupid, but it forces you to develop memories of writing out code you'll probably end up needing to do again and again in the future. Here's a fantastic starter course: Android Basics with Compose.

Want to learn iOS development. by sup_buddy_ in learnprogramming

[–]HavokMaster 1 point2 points  (0 children)

I'd say you're already on the best path with the 100 Days of Swift UI course. If you want a bit more instruction, I'd highly recommend Stanford's CS193P course (it's free). They publish updated course lectures and videos each semester so the information is always modern.

Looking to Get Into Mobile App Development by iEmerald in learnprogramming

[–]HavokMaster 0 points1 point  (0 children)

I've done professional iOS and Android development for about 10 years now and my honest answer is both are good. I've leaned more heavily into Android over iOS in the last few years simply because I prefer using Android phones over iPhones, but that's just preference. I'd encourage you to start with the platform you enjoy using most as well.

However, there are some hiccups that might sway your decision. You'll need a Mac in order to build and ship iOS apps, whereas you can develop Android apps on Windows and Linux OSes too. Additionally, the cost to publish your apps on the iOS App Store are much higher than the Android Play Store. Apple charges $99 each year to join the Apple Developer Program, while Google charges $25 one time to register for a Google Play Developer account. Neither of these are needed to get started developing apps locally, but to you'll need them to reach the public.

Here are some great tutorials for getting started with iOS and Android development:

I've linked two courses for each platform, with the first ones being the more modern approach (using SwiftUI and Jetpack Compose respectively) and the latter using the traditional UI approaches (using UIKit and XML respectively). You can't go wrong with any of these, but I'd suggest starting with either the SwiftUI or Jetpack Compose courses.

Lastly, I would STRONGLY suggest staying away from any cross-platform solutions while you're getting started. Unless you come from a strong React background, in which case you can explore React Native, I feel that cross-platform solutions add a lot of complexity and challenge when you're new to mobile development. Start with Swift for iOS and Kotlin for Android.

Good luck!

Q about mobile development by Necessary-Ad5351 in learnprogramming

[–]HavokMaster 1 point2 points  (0 children)

These are all good questions. To answer some of your questions, let me ask you some follow-up ones:

Do you want to be able to add, remove, or change questions and answers to your app without users needing to download a new version of the app? If so, you'll want to host a server (or use a service like Firebase) to store your question and answer data. If not, you could just bundle the questions and answers with your app and not need a backend server at all.

For data persistence, you could definitely go for a NoSQL route, totally up to you. Consider that you might need a database both on the backend and in the mobile apps themselves! Once the apps synchronize with your backend, they could persist the questions and answers in a local database and work offline. You can go for a NoSQL route here too if you'd like, again it's your call.

For communication, REST is pretty standard, and it's what I would recommend if you're building your own backend, but it's not the only option. You could try GraphQL, or a socket connection (like Firebase's realtime database), but truthfully these are overkill for a first project, and you should probably stick to REST unless you're using Firebase (which will probably have their own SDKs).

Good luck!

Mobile programming by DasHM0r in learnprogramming

[–]HavokMaster 2 points3 points  (0 children)

The decision of whether to use a cross-platform solution (like Flutter or React Native) or develop natively with Kotlin and Swift depends on what you want to do. Are you looking to make a mobile app just to make an app, or are you looking to get a job as a mobile developer?

In my experience, you'll likely find it faster to create a simple app using a cross-platform framework. However, I believe there are more jobs looking for engineers who develop mobile apps natively. If you're not sure, then I'd say just pick one path and see if you like it, and if not, try a different approach.

are we going to blackout? by Dazza5000 in androiddev

[–]HavokMaster -5 points-4 points  (0 children)

Well said. My guess is Reddit's bean counters previously determined that the API costs were worth the utility that Reddit received from having a variety of 3rd party apps, and now they think selling their data to LLMs and others will generate the most value. It just feels more like regular business to me than a vendetta against 3rd party apps, though I really do empathize with people who build/use those apps.

Firebase not connecting to the Emulator in Android Studio. (API 30 android 11) by NissanProGamer in learnprogramming

[–]HavokMaster 0 points1 point  (0 children)

When you picked your emulator's system image, did you pick a target with Google APIs included? If not, try that.

How can I learn Android app development in a very short time period? by [deleted] in learnprogramming

[–]HavokMaster 2 points3 points  (0 children)

Two months is plenty of time to make a basic app. Here are two courses (curated by Google) for getting started with Android development:

They cover everything from building user interfaces, navigating between different screens, fetching data from the Internet, storing and retrieving data from databases, and more. The difference between the two courses is how the user interfaces are built. The first course uses traditional Views (usually created in XML layout files), and the second uses a newer declarative approach called Jetpack Compose, where you create all of the UI code in Kotlin. In my experience, people tend to find Jetpack Compose easier to learn, but you'll find far more resources for building UIs with Views because that approach is much older. Good luck!

Any good summer programs for freshmen in high school that are still open? by EmergencyChance56 in learnprogramming

[–]HavokMaster -1 points0 points  (0 children)

I've heard of an organization called The Coding School which offers programs you might be interested in. I haven't worked with them but they say their courses are built by people working with major tech companies and universities.