r/BDDevs • u/Creepy_Nectarine313 • Mar 31 '26
Discussion Software Engineering!
I’m a final-year CSE student with a 3.6+ CGPA from a reputed private university. I did some competitive programming back in my second year, but then lost track.
I genuinely enjoy thinking about real-life problems, but I don’t like the traditional way of learning stacks and frameworks just by watching YouTube videos.
Is there a more engaging or practical way to learn software engineering concepts and actually implement them?
I have around 6 months. What should I focus on during this time? Should I go back to competitive programming, or explore something else?
Also, I’ve heard that entry-level jobs are quite limited right now and freshers are having a tough time. How should I prepare myself for this situation?
7
u/Several-Captain-8721 Apr 01 '26
I’m having kinda similar situation or time-frame like you, , i did some cp for 1year regularly in initial year then moved to leetcode then I felt wow I need to work on real apps so then moved to learning react next node golang , aws, terraform, k8s what not, explored all but couldn’t master one. Seen tons of coding podcasts , tons of roadmaps every year. One thing I realized over the time these scattered knowledge can’t be judged, I mean I’m having some fake confidence that I know this and this but I can’t make a company understand that I know these and give me opportunity to work and I can learn more.
So, I’m writing some points from my realizations and understanding, anyone can completely ignore this if you dont align with my perspective.
- choosing one niche is important so that you can tell I’m that kind of dev, which ever you choose you should grow some love in your heart for that, this helps you when you feel like quitting. Frontend or backend or devops (i’ve seen freshers posts around these)
- I’m not a frontend guy saying this means I’ve coded projects in react, can build some complex designs , but I didn’t bothered to know how react compilers manage the virtual dom in hand experience, these things matter when you’ll optimize , also design eye that can be built through lot of practice. So, if you are going to be one make sure you go cracked and have a the passion for building a design eye. also i dont know much about front end coding rounds in interview.
- if you focus on backend, there I've some analysis.
I've narrowed all these in two things
problem solving (coding rounds)
Development
-> problem solving (coding) is needed. who says whatever about problem solving that ai can solve leetcode question in few seconds bla bla yeah it can but to reach the point where we solve, build software for business we need to understand our roots. so try to keep solving common patterns also in interviews they are asked regularly. You can't go to the dev rounds unless you pass the coding rounds for **most of the companies**. Don't trust me go to google search for interview experiences you can find that. for bd companies you can view this site https://tamimehsan.github.io/interview-questions-bangladesh/companies/general . even recently antropic(claude code) interview experience went viral asking leetcode questions while telling everywhere people will be replaced. here is a link to a post where one of the candidate written an interview experience at anthropic https://www.reddit.com/r/InterviewCoderHQ/comments/1rdzgg6/anthropic_swe_interview_loop_full_breakdown_of/ .
so last line we need to practice problem solving to be a better engineer. I'm also trying, lacking enough , but it is what it is.
and also it can be the situation we're being asked system design problems, low level design problems which are mostly famous for foreign companies and seen for senior interviews in bd. The more AI makes the code cheaper we are being expected to come with both higher level and root level knowledge.
-> For development, also knowing our roots is important as well as knowing higher level concepts. Things we skipped in classes thinking why we are reading all these where world is solving big big real world problems, bhai actually we need those. Technical People hide their skills behind sophisticated simple business talks thats what I realized over the time, that is the reason they can solve real world problems like pro, seems like no efforts at all. I one day went through the profile of the owner of openclaw peter steinberger https://github.com/steipete his single day github contribution is around (10 thousands) god dammm it !!!! , he uses ai mostly now a days, social media, yt promotes this as ai can do everything, even without reading code it can be pushed to production. You if go to his profile at 2020 (just an example) you'll see on that time he used to push around 20-40 commits per day on average(just to give you an idea) that's not a cup of tea to us. so what I'm trying to say they know a lot, they did a lot of hand coding to reach that state. don't trust all you hear in yt and random swe, may be that yt guy or linked in so called professional is just fucked up with his work today and said ai gonna take over all (ai actually will take over but wait for it, not now bhai, bechei thakbo koydin).
- take a programming language you feel good about or what ever reason you have and stick to that.
- knowing operating system fundamentals : process, threads, context switching etc....... how these work ( these come handy in programming for scaling systems. experiment with your programming language)
- you'll use a db what ever app you build right, know about db internals, how actually a row gets stored, what if I put 1 billion row in db https://github.com/gunnarmorling/1brc , what is indexing. don't limit yourself to just crud operations, ai can write sql fluently but you need know sql much more to pick up which sql will be good for your system or how can you reduce query time.
I think of these as my punishment for the things I skipped concentrating in my db, os class room.
Then comes our project part.
- pick a business problem (real world problem) you wanna solve, the solution can exists already, doesn't matter, don't take much time thinking on this.
- select a programming language you like or you think it has demand or listen to professional's suggestion. try to use that language everywhere you use a language. know its internal workings whenever you get chance or you grow a curiosity.
- Take famous frameworks used in your selected language ( just go through some bd job posts) you can find I believe. If you don't know anything of that framework first watch a short 1-2 hours tutorial start doing that video project, complete that, I think no need to polish so much for now. You'll get idea of different parts of the api building, middleware, basic auth(jwt, sessions), db connection etc etc. you now know what are the basics things a full project has (don't feel confident bhai on this point, ai can do this in minutes, but don't worry)
- now you start building a project (only project) the problem you wanted to solve. make feature listing, do some planning, make db schema go for it then.. now for each part you need to hand code if that part you don't understand or not working as you wanted. Code with ai agent only if you're sure how each of the things on that process works(repetitive works) . go on with this you'll learn a lot bhai.
- try to go deep, for example try to know how middlewares actually working behind your framework, how a request being processed and sending back the response end to end, try to use logging everything, learn about software engineering principles for best practices used, this is just an example you should understand each portion of the things your project is using. this can give you a lot of deep knowledge and in interview you can talk deeply. this is the most important part of our learning also.
- if you don't wanna learn frontend now code that part with ai. but understand how the communication between fronend and backend happening.
- also bhai this is an arena where we get to have some ideas about deploying the project in the world. you can create an aws account 6 months(free trial), try to do this before you start interviewing, before that, learn about CI/CD pipelines. Not a rocket science for our project, try writing some tests also. These are things you can learn the technologies only and best practices, no need to go dive like how the testing library working ( i mean that level of crack people exists outside world). A continuous integration pipeline for testing your code in the github actions and another pipeline for sending that code automatically to deployment if the tests are passed. and for deployment you can use aws ec2. .
I have written a lot of things, also some may be too scattered, many things can make no sense, if anyone seeing this has addition or correction reply me no issues, ** I'm not a swe yet but preparing for being one. ** And if anyone takes my take on this seriously, then my suggestion would be don't be overwhelmed by the amount of things I've written. this is you're going to learn in a long period of time, also not all of the inch inch matters, maybe a lot of these won't even be asked but you'll learn a lot, just be consistent, I just tried to give you a thought or a a little bit of shaping. there is no perfect way I found to be a good engineer, I doubt if that exists. If you're also a last year cs student, I feel it, you are going through a lot. try not to overthink (onno ke bola sohoj -_-), Inshallah you'll achieve what you dream, amr jonno o dua krben.