by OulaX on 10/31/21, 12:13 PM with 61 comments
DESCLAIMER: This post can be quite long for some people, and I get it if no one wants to read it, but I would be grateful if you don't downvote me, maybe someone who's actually willing to help might see and answer me, because quite honestly I've been stuck in a terrible rut and I need some professional help.
Some Information About Me, I am 25 years old, and I live in a third world country (Iraq to be specific), the city I live in almost has no software-based startups / companies, also goverment work in IT is very very very difficult to get due to the amount of corruption there is, what I am currently doing is some freelance work, sometimes a client comes and wants a very basic static website, and I build it for them (Using a premade template from ThemeForest, because I am not a UI/UX designer). Sometimes a client requires a mobile app, so I stich together an app by following tutorials here and there, even though most of my stuff works, they are by no means professionally made, nor scalable or maintainable, I just need to do these jobs in order to get some cash flowing on, otherwise I would have nothing to depend on. I have gotten my CS degree last year when I was 24, and currently I have a BSc in CS. I have been coding 10 years ago, but to this date I haven't built something that I can be proud of!
I am stuck in a rut trying to specialize in a niche and keep on improving myself on that particular area.
I have tried Frontend Web Development but quite honestly I really hate working with CSS, it's not the syntax that I struggle with, it's the fact that making a site responsive really really is something I hate, I mostly hate working with UIs.
When I was in college I really loved working on the console, I built great apps using the console, and I quite enjoyed what I was doing! We were learning C++ at the time, and working on the console made me think about my logic, my code, my idea, instead of sweating about the design, or how a button looks, or how to make text appear good on all screen sizes.
I want to try out Native mobile development but I am not sure whether it would be the right choice for me or not.
I am stuck, and there's so much on my mind that I want to speak here but I can't explain them easily without going too much into the details.
I really want a hand guys, and would be willing to answer or comment on any ideas or questions you might have!
EDIT: Sometimes I also think coding might not be for me aswell! Maybe I made the wrong choice, but there are times that I enjoy coding, especially when someone gives me a problem or an assignment to solve.
by numair on 10/31/21, 2:22 PM
> I want to try out Native mobile development but I am not sure whether it would be the right choice for me or not.
You like writing native code? I am assuming, like most people in your country, you’ve got an Android phone. Become the master of native Android dev, which you’ll love because it allows you to leverage the stuff you used to enjoy. It’s totally free, just takes time. Once you’ve done this, you can build stuff that average people can use on a constant basis. That’s step 1.
Then, pick off ideas that are poorly translated for your local market or ignored, particularly in areas where foreign multinationals would either want to invest/buy what you made to add Iraq to their world domination map, or use the thing you made as an advertising channel into the young and growing population in your country. Consumer goods, financial services... there’s lots of categories. Test your apps and ideas on your dumbest relatives to get a sense for whether you’re building something “normal” people want.
Keep working those dead-end jobs while doing this. Get enough traction within your local area where foreign dollars can see how their added dollars would help you “capture the market in Iraq” for what you’re doing. Use that capital to grow and exit, then help others do the same, then keep doing it. Congratulations, you’ve become the Non-Evil version of the Samwer Brothers[1].
by gregd on 10/31/21, 2:50 PM
You repeatedly say "I am stuck". What does that mean to you?
What does "being proud of" something you've worked on, look like to you? I've been in this business for 26+ years and NOTHING I've done in my career, would qualify for being "proud of". What I AM proud of, is the person I've become, the relationships I've fostered, the children I've raised.
I get that this career choice can seem overwhelming at times. I've tried to specialize more than a few times, but it didn't work out. Primarily because I was chasing the money. In other words, doing what paid me and paid me well because I have a family to support.
Honestly what you've posted above, sounds so much larger than your career.
by jstx1 on 10/31/21, 1:16 PM
by fifticon on 10/31/21, 2:50 PM
by codegeek on 10/31/21, 4:38 PM
by tarkin2 on 10/31/21, 2:05 PM
by Jugurtha on 10/31/21, 1:47 PM
Here's their Launch HN: https://news.ycombinator.com/item?id=25849054
Here's their website: https://www.manara.tech
I wrote a little Twitter thread that contains tips for people who want to do consulting/freelancing that you might find useful in the meantime: https://twitter.com/jugurthahadjar/status/131066829330549965...
I am not unfamiliar with the government problems you describe, and I'd stay away from government work (whether that be getting a job in a state run entity or working on projects for government run entities).
What you can do to increase your revenue and get to a better place financially and mentally that affords you more options and the ability to think:
- Re-sell the product you built for one client to other clients in the same sector. Example: you built a static site for a pharmacy, make a bundle and go after pharmacies so the product is already made and you can close sales and generate revenue from the same code base.
- Find more clients: you can generally get a list of operators from the chamber of commerce or governing bodies for certain activities/professions. For example, you can get a list of all registered pharmacies and then sell your already-made product to them. Your pitch will be tuned because of all the conversations you'd have had with them.
- Build additional things for additional problems in their workflow to get a suite (either at the feature level, or in separate products).
- If what you built is for a role that's present in several sectors, target other sectors as well by targeting the roles as opposed to the sector, but it may make sense to focus on one sector at first.
- Charging more for your services: qualify clients, weed-out hagglers, continuously audit for what went well and what didn't and try to reproduce the good interactions/projects/clients.
- Improve your skills and tooling. (note that this is at the bottom of the list, but to be done as you do the above)
I'm available if you have questions along the way about product, people, engineering, hiring, sales, or you want to bounce off ideas or have problems. Contact information in my profile.
From Algeria, with love.
by eigenhombre on 10/31/21, 2:22 PM
Having written programs for nearly 40 years, I have found that there is a balance to be found, and continuously re-found, between what you love and what will pay. The happiest and most productive programmers I know don't focus just on what will pay, but also on what keeps them interested. This usually involves compromises.
Admittedly I live in a very different place than Iraq, but perhaps that just means the details of those compromises will be different for you.
Also, I think it's a mistake to specialize too early, unless you find something that you really love and can make money with it. Don't be afraid to try things, put them down for awhile, and try them again a few months or years later. Follow your interests for your personal work, try to meet your clients' needs in your paid work, ignore the BS as much as you can, and it can be a satisfying career.
[edit: fix typo]
by newacc9 on 10/31/21, 2:27 PM
You're probably frustrated because you think css or mastery in general should take less time. If a person thinks a journey will take 30 minutes and it takes 30 minutes, their mood is unchanged, but if they think a journey will take 10 minutes and it takes 30 minutes, they are enormously irritated.
by throwaw89 on 10/31/21, 2:12 PM
As for jobs, check out Dot Jobs, it's a popular Telegram channel in Iraq where many companies post their job offers
But that isn't enough by itself, you need to get your name known and make connections. There's a hidden group on FB called IQDevs where many employees from the biggest tech companies in Iraq (like Earthlink, Qi, etc) talk, network, and share advice. You'll need to figure out a way to join that, but I'm not sure how since it's hard to get invited there.
Best of luck.
by Alex_Bell on 10/31/21, 4:08 PM
by LeoSolaris on 10/31/21, 12:20 PM
by rmah on 10/31/21, 3:49 PM
First, having "nothing to be proud of" is not necessarily a bad thing. Perhaps you simply have high expectations for yourself. This is a good thing. You will always be striving to improve your craft and the things you create.
Second, not to sound harsh, but the stuff you did as a kid doesn't really matter to prospective employers beyond "he's pretty passionate about programming". In a few years, your college projects won't matter much either. This is just how it is.
Finally, you're only 25 and 1 year out of university. No one expects that you have accomplished anything! Combine this impression with your past projects to emphasize how you are willing and able to learn the practical aspects of software development on your own. That you are enjoy tackling new problems and exploring the unknown. And finally, that you not only toy around but actually deliver products too!
by muzani on 11/1/21, 4:26 AM
I'd say stick with it, especially when it seems tough. I thought tech was a dead end job. But the less jobs there are, the less people do it. The less people do it, the more valuable the skill set is when the jobs finally happen.
Tech is inevitable. Spreadsheets replace paper. CRUD replaces spreadsheets. It'll happen, the question is how long it takes. What's happening in SE Asia is a kind of tech "colonialism", where companies try to build local. Iraq has people, it has a market. It has problems that can be solved more efficiently with code, even if it's say, used cars or dating.
Native mobile is good, but basically, you want to be able to do CRUD. That might mean React Native or Flutter work. The native jobs pay a lot better, because they're usually solving bigger problems at scale.
by Zababa on 10/31/21, 3:50 PM
The only thing that I'm really proud of is a small Go application (90 lines of code) that automates some manual work for my mother. Almost anybody could have written it, it's not complex at all. I could have written it when I was 15, and certainly didn't need 5 years (that actually took 8) years of studying for this. But I did write it, and now she spends less time doing tedious manual work. It really makes me proud. Way more than getting a master's degree, way more than getting a job, way more than doing good at my job.
by barrenko on 10/31/21, 2:06 PM
by kaladin_1 on 10/31/21, 2:37 PM
Like many have already said, set specific goals and work at them.
E.g. * build an app that does what you need. * try a startup that requires minimal investment to setup * start a FOSS application * get a remote job where you can actually do backend work...e.t.c.
The struggle to achieve your goals will keep your life exciting... Of course, there'd be failures and successes but it's all an adventure at the end of the day.
by NumberCruncher on 11/4/21, 5:32 AM
by gaws on 11/1/21, 10:54 PM
Uh... get out. You'll find infinite opportunities elsewhere.
by joshdev on 10/31/21, 2:14 PM
by aristofun on 10/31/21, 1:00 PM
With such attitude you either should switch away from dev completely or suck it up and start setting specific goals and learning to enjoy the process.
One example of a good goal - find a fulltime remote job in a good tech company.
Another — run away from corrupted country and start a new professional life somewhere else.
by MR4D on 10/31/21, 3:32 PM
by agent3bood on 10/31/21, 6:30 PM
by fencepost on 10/31/21, 2:52 PM
by giantg2 on 10/31/21, 1:05 PM
by g8oz on 10/31/21, 3:43 PM
by moneywoes on 10/31/21, 3:47 PM
by manx on 10/31/21, 1:43 PM
Don't try to build anything to show it off. Work on things that interest you the most and share these instead.
by throwaway00837 on 10/31/21, 2:56 PM
The first thing I'd do if I were you is start mapping out some of what's out there. Start by looking at job boards and look at every single position listed for IT. You may not understand the titles or what is involved. Maybe it doesn't look interesting, or it looks difficult. Just map it all out anyway, and consider how many openings for a given position there are. Then start researching those positions to find out what's involved to get one. Since you're in Iraq, I would focus on positions that can be done remotely. But there may be many positions in your country going unfilled for niche jobs.
There are other jobs that won't show up on job boards, and you can find out about these the more you learn about the IT world. Network with different IT groups, talk to different folks, learn what's out there that isn't on a job board. Networking is the best way to get hired. You can do this on message boards, mailing lists, Discords, IRC, meet-ups, etc.
Even though you've spent a lot of time on programming, it's not too late to switch to something else. Maybe you enjoy working with people more than the kind of coding you'd get paid for. Maybe you're interested in systems. Maybe tech in general is just horrible and you would be happier with something with low hours, not a lot of expertise, and a big paycheck. Maybe you just want to freelance but in a different field of programming. There's a lot more options than you might think.
One way to be exposed to a lot of positions is to get employed by a massive company (remotely, let's say), and slowly work your way into different positions internally. Some don't have much lateral flexibility, but some have tons. This can give you job security while you learn a new skill. You can also learn different human languages, and become valuable by being able to work on projects that span the globe.
But my main point is this: there is a lot more out there than just making websites or mobile apps. A lot. And you are very young still, with all the time in the world to go a new direction.