last day (15 days later) » 

11:25
14
A: Can I still have hopes for an offer as a software developer

Gabe SechanI question if you ever had realistic expectations. You went to a bootcamp. Let's give you the benefit of the doubt and assume you worked hard and learned the material. And let's assume the bootcamp actually taught well, taught accurate info, and wasn't just a quasi-scam looking to cash in (mos...

The "outdated tech"I used was python which I learned using the Django framework which my personal portfolio is made in. Also used Javascript to build a games using Jquery. Are those technologies not the most in demand right now?
Things change all the time. Did you know Python 2 or 3? They're different, and 2 is a dead end tech now. Old apps will likely continue to use it, but nobody writes new stuff in it. Django is still used, but not as much as it was. Javascript is used (although a new version), but Typescript is slowly replacing it. Jquery isn't dead, but is used MUCH less. Which is why the best advice is generally to learn fundamentals and techniques rather than technologies- you'll change technologies several times over your career, but the fundamentals tend to stay.
As an example- Django specifically in 2022 14% of respondents doing professional programming to Stack Overflow's annual survey said they used Django in the last year. This year, it was 11%. Now the accuracy of that information is questionable- there could be bias among respondents. JQuery in the same time went from 28-21%, but I can also say that jQuery has a much less favorable reputation and I would expect a lot of the use of it is due to existing maintenance than choosing it as a path forward. But that shows you how quickly things can change in this field.
Yes, we used python2 but now I am using python3 version to make a sudoku game. If old apps are still being used does that mean you have to still in a way know the tech to maintain, since nobody is writing new code. Also what is the technologies that everyone is writing now? Lastly, what fundamentals and techniques do you recommend besides Dynamic programming and Data Structures which I am pretty familiar with??
Old apps that are being maintained still need people to maintain them and know those technologies. Which is why techs have long tails. Cobol programmers still have jobs due to financial apps written in the 60s that still power credit card transactions and banks. But the number of jobs decrease over time as they become unused and apps get replaced. The front end tech of the moment is probably React. Backend is more scattered and I myself don't do Python so I can't really comment.
As for fundamentals- with no offense meant, thinking you know them at your point shows how much you don't know. Can you tell me three methods of conflict resolution in a hash map without googling? Can you tell me how a hash map actually works (not just how to use it)? Can you tell me under what circumstances the O(1) access time assumption is violated? Could you, given infinite time to code, write a competitor to Django? Basically everything you use- learn how it actually works, and why it was done that way vs another way. That's what's important and long term transferable.
@GabeSechan I have a Master's Degree in IT, and I couldn't answer any of those questions, besides maybe "write a competitor to Django given infinite time to code". (Besides, wouldn't access time be O(n) where n is the size of the memory you're reading through?)
11:25
@nick012000 Are you a professional programmer at a tech company? Because all of those come from a 2nd year course in data structures. And O(n) can be time or space depending on your use of it. Generally it's time. Hash tables are O(1) access time average case, except when the hash algorithm causes conflicts (it worse cases O(n)). You use the because they're O(1). Hash tables are horrible memory wise, generally O(n^2) if avoiding conflict. There are literally the first things you learn when you learn what a hash table is and how to use it. It's in my CS 201 notes.
Basically any of my coworkers could rattle those things off the top of their head (3 conflict methods- linked list, rehash, or bumping the index. Worse case they'd come up with the first 2). If you don't know that, you don't know what a hash table actually is and there's no way in hell you're using one properly. Or can claim to know data structures at all, since that's one of the most basic.
@GabeSechan: Are Python 2 and Python 3 different enough to make Python 2 knowledge obsolete? Just focus on the major new features of Python 3 and the slight syntax differences here and there. It should also be easy to upgrade your Python 2 GitHub projects to Python 3.
Python 2 and 3 are not that different. There have of course been some additions and popularizations of certain libraries (e.g. typing, asyncio), and a few questionable operators (e.g. the walrus := and switch), but that's nothing that would trip up an experienced software engineer for more than... an hour. The main problem is the experience, transferable knowledge, and really, simply the ability to actually write non-trivial programs in any language.
Also, "fundamentals" of CS are not necessary for many software jobs. There are only two traditional data structures that 90% of people will ever use: (i) arrays / lists / ordered sequences and (ii) dictionaries. The only thing you need to know about them performance-wise is that dictionary lookup/deletion/random insertion is O(1) and list lookup/deletion/random insertion is O(n).
@MateenUlhaq Completely disagree. What you're talking about isn't a developer but a hack. Companies do sometimes hire them if they're desperate, but they generally end up costing the company a multiple of what they're paid in bugs and maintenance because they don't know what they're doing. And don't expect to be making any more than the absolute minimum if that's all you are, those people are dime a dozen and the first laid off in any problems and outsources whenever possible. You'll also have trouble getting jobs, because they'd rather hire someone qualified
@KevinKostlan Not obsolete, they're similar. I don't know the full list of differences because I'm not an active python dev. If you know one you can absolutely learn the other without a lot of trouble (you'll occassionally have a slip and forget something, but we all do that). That was more meant as an example that even languages change frequently.
@MateenUlhaq There is a lot of credulousity: contradictory, deeply-held beliefs in how best to get a job with little empirical support. One of many examples is this debate on the weight of basic CS knowledge. Such credulousity usually occurs when it's hard to beat random guessing (age of sail forcasting, technical analysis, casino games, etc). However, the ability to get a job is very non random: some send out 1000 resumes and get nothing while others enjoy 10-20% success. Why is this?
Voo
Voo
@Gabe I'd love to hear in what situation knowing the difference between closed and open hashing or how it is implemented was relevant (relevant enough to roll out your own no less, because otherwise it doesn't matter). Surely not in your average business application where you simply use the implementation provided by the standard library. I mean I know all of that stuff, but even when I worked on compilers that wasn't relevant.
11:25
@GabeSechan I work in the web team of a government agency.
@MateenUlhaq I'd say there's a probably a third commonly-used third data structure you missed: the Object (as in "Object-oriented Programming"). Being able to bundle an assortment of different fields of disparate types into a single container is just useful.
@nick012000 Objects are essentially just specialized dictionaries with a lower access overhead. Especially in Lua where everything is a dictionary. In Python, they're nearly the same, except in cases where memory usage and performance matters (e.g. primitive integers). One can probably construct a surjective mapping f: Dict[str, V] -> Object while maintaining the same asymptotic performance characteristics. Now any function g on Object can be translated to g ∘ f on Dict. And the other way around, too.
 
3 hours later…
13:59
@A.Ozone I'd have to say if someone was applying for a job at my company and listed their experience as "a boot camp" I'd be nervous about hiring them, whether the camp was last week or 6 years ago. I'd be worried that they'd think they knew way more than they actually do. Developing software isn't about knowing syntax, it's about making design decisions. The best bet would be to look for a job related to software development such as testing, or a job as an intern.

last day (15 days later) »