Archinect
anchor

Should I take a rollercoaster switch from Architecture to Computer Science?

architino

Dear all,

I am in a situation where I have a even wilder dream as if Architecture is not hard enough: Pursuing a master degree in computer science.

Firstly, I have always been interested in data, and forseeing how data science can bring in actual value to urban design and architecture. What I personally experienced is often that the toys in grasshopper at its best can only bring a somewhat pseudo-scientific findings and correlation onto the table merely within the discourse of Architecture. (Let alone the lack of real skill to scrape and analyse data in a deep and meaningful way). To bring real impact, I think that I need to learn their languages in statistics and analytics.   

Secondly, I have always got a gut feeling that my energy to be an Architect is going to run low at some point at my life as I know many people here have already expressed... Potentially such switch can provide me with opportunities to not just branch out, but to switch my career that is not just about Architecture…

Any thoughts or like-minded buddies here who could share some story and experience of such a switch?

Thanks! 

 
Apr 9, 22 12:18 pm
Feedlydee

If you have conviction, I see why not. It will give you broader career options and likely a higher salary. if you can though, try taking some free classes to see if you would like coding. I have seen many of my friends make that move—not just from architecture but from art, culinary world, engineering, etc. They seem satisfied enough in terms of life style  although I would say no career is without its own set of challenges. I’ve heard that competition is intense in that world. Pivoting takes a lot of courage and effort. I wish you the best of luck!

Apr 22, 22 2:03 am  · 
1  · 
architino

Thank you for your kind words! Like you said, I will definitely start joining some bootcamps to have a more solid foundation in coding. It is going to be a big commitment but I am excited.

If you don't mind me asking, at around what age did your friends make such switch? 

May 12, 22 1:07 pm  · 
 · 
Feedlydee

At all stages—early twenties, late twenties, and early thirties. Never too late and there will always be demand for programmers in the foreseeable future. Make sure you join a boot camp with good job connections. I’m sure you’ll do fine!

May 12, 22 4:48 pm  · 
1  · 
rcz1001

I agree. As someone who has been in the software field and concurrently in that field, I can say that you can enter this field at virtually any age that your mind is sharp enough to learn new things and the programming languages. I highly recommend C/C++ and C#, Python, and possibly some others. Additionally learn web languages like HTML (including HTML 5), CSS (cascade style sheets), javascript, Ruby, and I would even look into learning Flutter. 

Modern day programming is likely to be using multiple programming languages. Learning one language to start to understand the abstract principles of computer languages. The syntax of the languages will be different but the underlying principles are the same regardless of the computer languages. You'll probably be learning about data structures. I have been working with computer programming languages with computers that dates back from the 1970s to current from very low level languages like machine language for multiple CPU instruction set architectures to higher level languages when undergoes processes of interpretation or compiling to derive an executable code in machine language that the CPU can process and understand. Generally, a CPU understands only one language directly. 

There's a lot of 'magic' that happens behind the scenes to make even this web page process and be displayed just inside that 'black box'... the web browser. In this field, there is some employers that essentially engage in age discrimination to a point. Now keep in mind that is not always the case. 

In reality, in most cases, some companies are into using the "latest and greatest" programming languages that are the current trendy languages to learn. This means that if you don't keep a continuous learning discipline in your life learning the new languages as they come, you can end up being obsolete and a younger person fresh out of school would displace you because they learn that in school. Back in the day, there was that popular language called BASIC. Today, those versions of BASIC from that era with program line numbers and all, are largely obsolete in modern computers which now use structured programming and often object-oriented programming. You might not know what they mean exactly right now, but you'll know what they mean. This is why C/C++ and C# are still relevant and C & C++ is still the long standing language of professional level programming. 

Most applications and video games will use C, C++, and/or C# in the programming code that is more than whatever "visual scripting" that may be used in game engines like Unity or UE4. More advanced logic would be coded. It is important that you keep learning. Additionally, as you gain more experience, you'll most likely be promoted up to more managerial/directorship type roles. Of course, you'll incrementally be less involved in the day to day programming because it cost less to have some fresh out of college kid working for peanuts do that grunt work. You get bigger pay but less direct hands-on programming of the work yourself. 

However, you would and should keep learning the new languages and review the work prepared by others and 'redline' (architect speak) for noting things to be corrected. 

Regardless of age, you will likely be starting at the bottom of the rung but the bright side is your pay rate steps up fairly quickly over a short number of years of experience and also the step up the ladder of positions offering larger salaries and more benefits in various jobs in the software field. I can not say that is going to be a guarantee for your own experience. 

The computer programming field is so vast and ties into so many other industries so you need to research those different areas. It is not all going to be equal. You might not get to be working for say a video game company or for say... Microsoft. You may be getting a job in programming for say a company that does programming and related work like software architecture/engineering consultant work for say.... a medical industry client. Things may look more like you see in the architecture field where you may have an okay entry pay but it plateaus in the $60K to $120K range and depends on the position and slow/small increments in pay. It runs the gamut so your experience can be drastically different that of a fellow classmate. 

I would argue that you should not be concerned about your age. Unless you are in your 70s or 80s or older, I probably wouldn't be too concern with your age when it comes to pivoting. If you are in your 30s or 40s, you still have another 30 years or so to make a career in another field. You don't have to be in your teens or 20s to work in software and closely related IT fields.

May 12, 22 5:41 pm  · 
 · 
rcz1001

TLDR? 

architino,

The computer science field is so vast and encompasses and weaves into virtually every industry sector on the planet, your experience will vary. Your pay will vary. Your pay increase increments will vary. 

Do not be too concerned about age. While age discrimination does exist, it is not always the case and may not be the most significant case. In the world of programming, age discrimination is perhaps more prevalent in the sectors that are constantly into the "latest and greatest" trendy programming languages so if you don't keep a regiment of continuous learning of new programming languages on your time, you can find yourself being viewed as old and outdated. 

There are languages that have held the test of time like C/C++ and C# being a more modern derivative. Most likely, if you are not going to be writing video games or something, C/C++ and Python are probably going to be a good starting language for professional programming in fields that don't need a game engine or something like that. Flutter is a new language which a person may want to learn along with web languages for running software that runs in the browser given how much and importance of the internet in the workflow of the end-user.

What do you want to be doing in computer science / programming? This is the question to ask yourself as you go through the curriculum from the fundamental stuff and then tailoring your education to what kind of work you want to do.


May 12, 22 6:18 pm  · 
 · 
rcz1001

architino,

Whatever you do, consider the end-user(s) of the software or hardware. Computer science can branch to hardware and software and the various facets of IT.

May 12, 22 6:22 pm  · 
 · 
rcz1001

Feedlydee, my above responses are mostly for architino than to you other than I agree with what you wrote.

May 12, 22 6:24 pm  · 
 · 
architino

@Feedlydee Thank you for your positivity

May 24, 22 2:07 am  · 
 · 
architino

@rcz1001,


Thank you for your thorough information and response! Much appreciated! I am genuinely surprised with the amount of support put out here.


Having talked to some of my peers at late 20s with your insights at some lengths, I notice that people in the field of computer science/IT would much prefer  investing the actual skills that I can acquire from a bootcamp than pursuing a master degree (Although they did not deny the merits of having a master of CS on my CV if I want to shift field). They mentioned that what I would learn from the master degree in terms of coding is going to be outdated and not as valuable as practical experience. However, I also recognise the upside of taking the master degree: to learn about fundamentals of theories, algorithms and data structure. 


Do you agree that a bootcamp is sufficient to make the same career shift that I am looking for?



May 24, 22 2:05 am  · 
 · 
rcz1001

Often bootcamp program if I recall are much shorter in length than a degree program. It is conceivable that you learn what you need in the program understanding the principles but bootcamp may teach on some newer stuff than that which the universities might not touch on. It might be possible to do both if you have the financial resources and time. The degree would give you a more solid foundation on various principles that you can't possibly learn in a bootcamp course because there isn't enough time to teach those in 12 weeks or 24 weeks. That's basically two terms and of course, if you want to be more than a programmer but a developer then you need to have more than just programming behind you. While it may be something you figure out over the course of working and learning as you go but it takes other knowledge areas besides programming to lead and plan a software project's development. You can understand that from your time in architecture field. Luckily, you have some of that that can go along with you in translating it to software projects. There's resources for and about software projects and workflow. Fairly similar at the conceptual level.

May 24, 22 12:35 pm  · 
 · 
rcz1001

If you do any such bootcamp along with the degree, use it to supplement your degree program to touch on things not necessarily covered in the degree but can be useful for what you want to do with the computer science. There's even courses and also some good youtube tutorials that you can use as continuing education. In the main degree program, I wouldn't spend as much time learning the obscure languages but those that are going to be part of the core languages you would use like C/C++/C#, HTML, Javascript, and possibly Python. As for stuff like Ruby and other languages on web, you pick them up as you go as a continuing education discipline in your life. In Architecture, you would have become accustom to that mindset with required continuing ed for license renewals. In this case, it is not for license renewals but for keeping relevant skills to remain relevant and less likely to be fired or to develop knowledge and skills for other roles like management roles.

May 24, 22 12:44 pm  · 
 · 
monosierra

I always found bootcamps claiming to turn novices into Google engineers by the end of the course exaggerated. Is that really the case in your experience? My hunch was that while one could get a surface level of working knowledge in a bootcamp, having a solid background in computer science would help a student better grasp what goes on behind the scenes (so to speak) and facilitate future learning.

May 24, 22 1:01 pm  · 
1  · 
rcz1001

I would recommend such bootcamps after having a solid foundation and that the courses can be streamlined ways to learn new languages and techniques in programming but you should have at least the foundation and principles because it would make it easier to learn new languages and stuff.

May 24, 22 6:02 pm  · 
1  · 
voguescholar

Hi! I have a bachelor's in computer science and currently work as a software engineer. You definitely don't need a master's in computer science to break into the industry since modern software engineering jobs don't really use computer science fundamentals on the day to day (controversial statement to some). Of course, it is definitely useful to have that foundational knowledge. If your goal is to learn enough to get a job in the field there are many free resources to get started (MOOCs, freecodecamp, codeacademy). Once you've dipped your toes in the free resouces then you can decide whether a paid course or bootcamp is right for you. Based on your original post it seems like you would enjoy looking into data science oriented courses rather than software engineering.

If you would like to go the degree route many data science master's programs are open to people with an undergrad degree in any field. Another thing to look into are courses that are accelerated Master's in Computer Science for non-cs backgrounds like the MCIT program at UPenn. 

Happy to chat more - I'm trying to do the opposite (switch from cs to architecture) - good luck!

May 24, 22 8:24 pm  · 
 · 
rcz1001

True, a master isn't needed but a master for a non-cs undergrad is usually going to be about similar number of course credits as the major's is in the undergrad minus the general education stuff that is in an undergrad that you don't take in grad school masters. So, in either case, you will usually have about the same result except maybe the courses are offered in a manner that you can take it more quickly but you would need to research the costs. At the end of the day, it doesn't matter if it is a bs or ms in cs as a cs degree for those with non-cs related undergrad will be about the same degree curriculum more or less. In any case, you need a meaningful foundation that is substantive if you plan to be a software engineer, software architect, video game developer, etc. versus just being a computer programmer. Don't confuse job titles with professional titles or that which is the professional name for the occupation. A software engineer is more than programming as for what the title actually means but it is a title that is easily misused to mean anything from a fresh out of high school graduate hired at the lowest rung in the employment with the absolute least qualifications requirements. As for computer science fundamentals, you use it every day but only a subset of it is most frequently used. Every time you compose any logic, using variables, etc. all in encompassed in computer science fundamentals. Some of the computer science fundamentals are less used in most cases which I do agree with you. I been in this field all the way back to 6502s, z80s, 8086 and TMS 9900 processors were the kings of microcomputer processor technologies when BASIC was the most common introductory language into the world of programming and machine language / assembly language was the language of professional programming. Computer science encompasses much more than programming and it is instrumental to understanding how computers work and operate and fundamentally, an i9-14900k is just as dimwitted and needy of being provided instructions of absolutely every operation performed by the CPU as a 4004. It might be faster and more of them in a single chip package but it is still fundamentally the same dimwits they ever been. It is because of tools like compilers and interpreters that makes your job easier so you don't have to manually do it because brilliant individuals that like to torment themselves managed to develop tools that allows you to use a higher level language that allows you to compose simpler syntax to perform compound operations that would otherwise require you to write it out opcode by opcode for each and every addressing mode being used at the moment in the code. So one simple command like PRINT can save a lot of time than to manually write that out in machine language. That simple HTML tag in a web browser could meant a shit load of opcodes in machine language.

May 25, 22 12:17 am  · 
 · 
robinsparkles

I made a switch to IT industry as a Product Manager in January this year after working as an architect over a year in an MNC,  This Fall I got into Masters CS program in USA. 

I took a leap of faith and was very tactical while choosing the courses for the first two semester - Coming from a design background you would definitely excel at presentations, managing time for the petty assignments - but you would be spending your free time catching up with the other students who have a vast experience in the field. 

Imagine a CS undergrad with no architecture background trying to build a skyscraper on REVIT for their first assignment.

You need to cover a lot of ground to catch up with some basic assignments, if you would like to put yourself through the same old sleepless nights we used to spend drafting sheets & making models again. 

Then go for it. 

It is almost end of the semester!

Personally, I have been enjoying the journey so far as I took User Interface Design as one of the three courses which we are allowed to, which has helped me in the transition from architecture to CS.

Get a hold on languages like Java, Python and C++  along with necessary concepts like Object Oriented Design and Patterns, Algorithms & Data Structures before taking a leap into CS. 

Your life would be much easier if you get a hold of the above mentioned topics before you make a switch.

All the best!

Dec 8, 22 3:03 am  · 
 · 

Block this user


Are you sure you want to block this user and hide all related comments throughout the site?

Archinect


This is your first comment on Archinect. Your comment will be visible once approved.

  • ×Search in: