Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Education Programming

Ask Slashdot: Best Options For Ongoing Education? 149

An anonymous reader writes "Lately, with the volatility of the economy, I have been thinking of expanding my education to reach into other areas related to my career. I have a computer science degree from Purdue and have been employed as a firmware engineer for 10+ years writing C and C++. I like what I do, but to me it seems that most job opportunities are available for people with skills in higher level languages such as ASP, .NET, C#, PHP, Scripting, Web applications and so on. Is it worth going back to school to get this training? I was thinking that a computer information technology degree would fit the bill, but I am concerned that going back to college would require a lot of time wasted doing electives and taking courses that don't get to the 'meat' of the learning. What would you do?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Best Options For Ongoing Education?

Comments Filter:
  • by Kenja ( 541830 ) on Friday February 14, 2014 @02:04PM (#46247951)
    Just learn them. School will only teach you one specific set of solutions to a problem rather then teaching you to problem solve. If you want to learn another language, just do it. Sit down, think up a simple application and write it.
    • by Anonymous Coward

      I agree with your advice, but I'm compelled to point out that your assessment of school is specifically for tech schools. A good college is a bad choice for the submitter for the opposite reason: it'll teach how to solve problems, but usually without regard to whether the languages or platforms used look good on a resume. (Then again, I'm always wary of a tech person who automatically dismisses electives as a waste.)

      • by rwa2 ( 4391 ) *

        (Then again, I'm always wary of a tech person who automatically dismisses electives as a waste.)

        Rings true... when I went to get my MSSE degree (funded by my employer), the most fun classes were actually the electives. One of the first classes I took as an ASS ("advanced special student" prior to getting on a degree track) was a signals analysis class where we learned about z-transforms and fourier transforms... stuff that I had already been familiar with after years of staring at Winamp / XMMS / Milkdrop spectrum analyzers and had assumed would be covered in my undergraduate engineering maths progr

        • All that Fourier transform stuff is more of an EE thing... I just took the exam (theory of signals, I think it would be called in English) here in Germany and it was freakin brutal.

          Getting a small taste of the subject in an elective would have been preferable ;)

    • by oneiros27 ( 46144 ) on Friday February 14, 2014 @02:16PM (#46248091) Homepage

      ... or if you don't want to just write a toy program that you're going to throw away, then find some open source project that you can contribute to.

      Or check Code For America [codeforamerica.org] (or whatever the equivalent is in your country) to help out on local projects ... then you're also networking in your area, if you're looking for a new job.

      Go to school for learning the fundamentals of programming ('this is a variable', 'this is a function'), or maybe to get a deeper understanding of different styles of programming (procedural / functional / OO / event-driven, etc.) ... but for learning languages you're often better off working on a project you care about and maybe finding a support community (local users group for that language, or the support community behind that project) or a mentor (eg, someone else from that project)

      If you're one of those people who learn better from structured education ... then maybe look into a MOOC [mooc-list.com] or community college. This is not one of those situations where shelling out university prices is appropriate.

      • I'd +1 this answer: find an open-source project, but find one the right size to feel like you are making a difference. I never managed to break into WordPress - the FLOSS I probably use the most - however, doing some scripting (Google Apps Script) for a organisation I volunteer for I've really got into what a fantastic little language JavaScript is and ended up working on a little project with just a few of us contributing (Flubaroo). I'm hoping to start earning with JavaScript eventually - watch this space
      • by maitas ( 98290 )

        Also, +1 this answer.

    • Re: (Score:2, Insightful)

      by Anonymous Coward

      I thought school was supposed to teach a framework for solving problems, instead of the solutions to specific problems.

    • I agree with the parent. You already have knowledge on low-level programming and many basic concepts firmly-grounded. School is only going to cost you more money, in the long run. It sounds like you have the propensity to self-educate and there are many free, online courses for you to choose from --even be graded on. Don't waste money on what you can learn in your free-time.
    • Getting a Computer Science Degree is good, but it isn't about learning how to program in the newest hottest language. It is about Computer Science, Theory, Methodologies, Styles and Best Practices. Now this is good because it gives you a strong foundation to be a really good programmer, not sweat about learning new languages, and knowing where to focus your mental attention on (Meeting the requirements vs. Just getting it to work)

      Now if you have years of experience and no degree, there could still be val

      • by GigsVT ( 208848 )

        I take issue with the idea that a CS degree at most schools would give you the foundation to be a good programmer.

        There's far too much emphasis on math, and far too little emphasis on what really matters in software. I will never ask one of my employees to solve a partial differential equation. But I will ask them to write maintainable code (even simple shit like don't copy and paste big blocks of code seems to not be taught at all) and to consider usability and UI at every step.

    • "Just learn them."

      Further, I would say don't learn PHP, unless you are just studying the basic principles of how Web applications work.

      I'm not saying any one language is perfect. But PHP is primitive and has a collection of built-in methods with woefully inconsistent syntax (parameters). Personally I consider it less of a "language", than a hodgepodge of inconsistent utility functions. You learn PHP not via the principles of its design, if any, but merely by memorizing the functions you need and the parameters they accept

      • by GigsVT ( 208848 )

        Learning to write good PHP code would be a huge benefit, since it seems to be a rare skill, and as you point out, the language gives you plenty of rope to hang yourself with.

    • Just learn them.

      I am taking a "free online" course in programming Android for Mobile Handheld Systems. I can deal with passively listening to the lecture videos, I can deal with looking up the information required for the quizzes, but I have to draw the line at jumping the hoops required for the automated lab grading system. For the time invested in figuring out what hoops these guys want me to jump through, I can finish writing my own app, learn how to color outside their lines, and generally get a better education in A

    • Showing actual, relevant work products are the best way to get a job now. Pick the technology you want to learn, build an application that motivates you to put in the time. The technology should be marketable, the application doesn't have to be. Just has to be professional quality in the end. Based on your existing skills with embedded development and lower level languages there are a couple directions you could take. 'Internet of Things' is getting hot if you want to stay with embedded development. Objec
  • by Anonymous Coward on Friday February 14, 2014 @02:08PM (#46247991)

    Just start learning the new languages. You'll be surprised at how easy they are to pick up when you already have programming background..

    IMO: You'd waste time & money going back to school.

    • by rjune ( 123157 ) on Friday February 14, 2014 @02:41PM (#46248363)

      There is another alternative. I went back to school because if I'm doing something on my own, life tends to get in the way. Taking a class forces me to do the work. That being said, that is the situation that applies to me. Perhaps you have more self-discipline and learn effectively on your own as other posters have suggested. However, you don't have to earn another degree. Just enroll as a non-degree student and cherry pick the courses you would find useful. Just because you a CS degree doesn't mean that you have to go to a 4 year college. I have an MS in Computing, but I'm taking some courses at technical college (2 year college). Go for the knowledge you think is useful for your goals and career. Good Luck!

  • I suppose, but (Score:5, Insightful)

    by TheRealMindChild ( 743925 ) on Friday February 14, 2014 @02:09PM (#46247999) Homepage Journal
    If that's what you want to do, sure. But these PHP/C#/Web folks are a dime a dozen. You already have experience in something specialized. There may not be many jobs per se, but there aren't many people to fill those. Move into driver development or embedded system programming. You will be able to transfer current skills and you won't face saturation like in the higher level languages.
    • But these PHP/C#/Web folks are a dime a dozen.

      Yes, because there's apparently much more demand for them, so more people develop those skills. I'm currently doing .NET/web stuff specifically because I couldn't find work writing C. (And I'm entry-level, so it's not as if experience was a factor -- in fact, I wrote C & Fortran in my research assistant job while at school).

    • Generalization == many jobs, much competition, low(er) pay
      Specialization == fewer jobs, less competition, much higher pay

      At a previous job, we had an in-house programmer who pulled the third-highest salary in the company because the in-house app was written in some little-known variant of an old version of Visual Basic. However, it got to the point where a total rewrite was on the drawing board because that language didn't work well well with the APIs of other software we were starting to use, and a web-bas

    • Re:I suppose, but (Score:4, Informative)

      by stevegee58 ( 1179505 ) on Friday February 14, 2014 @02:26PM (#46248217) Journal
      I second this. I'm in a specialty like OP, embedded software in C/C++. Like OP I've been feeling the heat due to economic slowdown, defense cuts, sequestration, etc.
      After looking into switching software fields to web/database I decided to stick with embedded. The fact is that there is still a demand for embedded software and I'd have to take a significant pay cut to switch out of it. I guess it boils down to if you want more *perceived* job security at lower pay or to take your chances at higher pay.
    • You already have experience in something specialized. There may not be many jobs per se, but there aren't many people to fill those. Move into driver development or embedded system programming.
      Metro Detroit and the auto industry have started to come back from the dead. Look for real estate bargains in Oakland or western Wayne County. Ann Arbor is nice too.

    • If he wants to get into web development, it may not be popular, but learn Wt (http://webtoolkit.eu). It's a C++ library for web dev and the results are amazing. I think of everyone used Wt the web would suck 50% less. Its a joy to work in, and you don't have to know too much about all the web to get started. You start by coding an application, then the library takes care of rendering it to the web, using ajax whereever. Its quite amazing.

    • by GigsVT ( 208848 )

      Someone who knows PHP and Javascript really well is not a common thing. If you do go the web route, focus on the JS more than the server side, since that's where things are actually happening these days. Learn how to write JS that doesn't leak DOM nodes or memory (for god's sake, please). Half the JS libraries out there leak like a sieve.

  • by Kimomaru ( 2579489 ) on Friday February 14, 2014 @02:10PM (#46248021)
    This is probably one of the few professional areas where going to a formal educational institution is a waste of time and money. There is SO much by way of online resources that you can use to self-teach, communities to ask questions (like StackOverflow), and practical projects that you can do to learn programming. If your aim is to learn another language, consider yourself extremely fortunate. Decide which language you're interested in, get a good book, start an SO account and get started.
  • First of all its really easy to learn a new language after you mastered one, especially c++, since it's sort of low level. Second, all you need is a book and a few hours a week and you'll learn a new language in a month or so. You should be competent in that language by then. Third, going back to school would be way over kill, it's not that big of a deal to learn a new language especially going from c++ to C# since c# is based on c++ with the c style syntax. The only other thing that pops up is getting
  • community college (Score:4, Interesting)

    by i.r.id10t ( 595143 ) on Friday February 14, 2014 @02:13PM (#46248059)

    I am concerned that going back to college would require a lot of time wasted doing electives and taking courses that don't get to the 'meat' of the learning

    If you really want to get into teh web development side, I'd check out your local community colleges. All your gen ed stuff (english, math courses, history, etc) from your prior degree(s) should still count, so you'd just need to do the core classes for the AS degree you are interested in. You should be able to finish up in 3 or 4 semesters, if that.

  • Industry Problem (Score:5, Insightful)

    by ltrand ( 933535 ) on Friday February 14, 2014 @02:13PM (#46248061)
    Background: I am an adjunct instructor and an IT professional. As such, this is a common discussion topic.

    The education industry, meaning colleges and universities, need a way to "add on" additional skill emphasis to degrees without requiring whole new degrees. I think, instead of detracting from current products (associates, bachelors, masters degrees), this will add revenue abilities from lifetime learning requirements that tech people have.

    For Example: BSCS, Purdue University, 1990
    CS Advanced Programming Topics, Coursera, 2013.

    This would allow people to add the 2-3 courses that they need to refresh their skills, get students into the halls paying tuition (out of pocket, or company money), allow current students to brush up and work with more experienced folks IN CLASS, and show what HR is looking for, current accredited skills improvement.

    But we seem stuck in the past. So we have to suffer through $1,000 a day "boot camps" that still require you to do a lot of on-your-own learning. We NEED something better. Colleges, be they 4 year or community, need to have programs that carry through the whole career ladder for skills improvement. I think that will help all of us overcome the "no training dollars this year" dilemma we constantly find.
    • by moniker ( 9961 ) on Friday February 14, 2014 @02:46PM (#46248417)

      The education industry, meaning colleges and universities, need a way to "add on" additional skill emphasis to degrees without requiring whole new degrees.

      They are called graduate certificates. You take a couple of graduate level courses, and you get a graduate certificate. Often, you can get a certificate while you are on the path towards a masters.

      • by Anonymous Coward

        The University of Washington calls these kinds of programs Professional and Continuing Education, and it's an expanding area. I'm sure other universities have similar programs. As an example of what's available at UW, and to get a sense of what's out there, check out www.pce.uw.edu/computing-it.html. (Full disclosure: I work at UW, but not in PCE.)

      • by ltrand ( 933535 )
        While true, they are limited in usefulness. The real point is that continuing education is not even really a focus of current colleges. Besides which, many graduate certificates carries their own "not really required" requirements and precludes community colleges, what most of us could actually afford out-of-pocket.
      • The education industry, meaning colleges and universities, need a way to "add on" additional skill emphasis to degrees without requiring whole new degrees.

        They are called graduate certificates. You take a couple of graduate level courses, and you get a graduate certificate. Often, you can get a certificate while you are on the path towards a masters.

        Or, if you don't need a piece of paper, you can just find classes that interest you, and take them.

        Where I work, tuition reimbursement exists if you are enrolled in a degree or certificate program -- it's much harder to get the company to pay for a single class. For that reason alone, graduate certificates are great.

      • The education industry, meaning colleges and universities, need a way to "add on" additional skill emphasis to degrees without requiring whole new degrees.

        They are called graduate certificates. You take a couple of graduate level courses, and you get a graduate certificate. Often, you can get a certificate while you are on the path towards a masters.

        Yes, absolutely. I live in Chicago so both Northwestern and U of Chicago have these programs. They are outstanding. And expensive. Generally, expect about $1000-1500 for a 3-4 month class that meets once a week. They are a large profit center for the universities, but that is a good thing - you are paying a lot for a good experience and they are delivering a good experience. Real professors that have received high marks for teaching ability. Books that are the standard for that subject matter. Quali

      • Exactly what I did 20 years ago, at National Technological University (now Walden), using satellite feeds and mailed VHS tapes. I got the USAF to pay for it, during job time.

    • Colleges time tables are poor for ongoing education and there needs to be a some kind of badges system that makes taking classes to refresh / learn new skills add up to some thing and not just that nice but it's not an degree from HR.

    • While investigating options for going back to school I found that a university not far from me offers something like you describe. If you have a BS/BA from them they will allow adding majors to your degree after the fact. At least that is how I understand it. I assume other colleges and universities have similar policies. What it does is allow one to return to the university and take classes there after graduating, once one has satisfactorily met the requirements of the second major their transcript wou

  • You have it backwards. Don't find a solution when you don't know the problem. It's easier to figure out what type of problems you are interested in solving and get the necessary training to solve those types of problems then the other way around.
  • WTF, sounds like you want to give up a job you like because ... there seem to be opportunities for people with other skills?
    People with the skills needed to work as a teller in fast food joints are also in demand.

    Got a job you like? Upgrade on your own time, take some courses, and use your industry network to let people know you've got the extra skills. THAT will get you variety and maybe move you up/around in your current company.

  • There are so many great online professional sites with tips, tools, tutorials, etc., plus great publishers like WROX press, O'Reilly etc if you want to go that route. I tend to do both

    The bulk of my development skills were self-taught or learned on the job, I don't even have a CS degree (I changed career paths), and I work exactly in the areas you described; C#, ASP, .NET, SQL, etc.

    Seriously, I don't think it makes sense, and for gawd's sake DO NOT, I repeat DO NOT, go to place like Phoenix or Capella, they

  • A master's degree might open some doors closed to a 4 year degree.

    I'd focus on emerging technologies if you want a big break.

    The things that are about to disrupt the current paradigm.

    https://en.wikipedia.org/wiki/... [wikipedia.org]

  • Comment removed based on user account deletion
  • Your best option here is PHP. There is tons of PHP work out there to be had and it is cross-platform so you won't be locked into MS.

    PHP has had a bit of a renaissance lately and being based on C you'll be right at home with lots of job opportunities.

    Just start taking PHP contracts. No need to go re-educate yourself to do something simpler than what you were doing.

    • by l810c ( 551591 ) *

      I got my BS in MIS and started with Cobol on a Mainframe at a big bank in Atlanta in the 90's.

      I've since moved on to VB, C#, pretty much the whole MS stack.

      Things got a little slow ten years ago and I got into the LAMP stack to make ends meet.

      There is nothing wrong with it and it worked quite great for everything I did at the time.

      What did I do at the time? Small projects.

      A lot of big corporations are "locked into MS".

      I've got a couple of sweet corporate projects going with the MS stack, I just don't see t

  • I've found Udacity to have some pretty good online CS classes. They have been expanding into other areas as well lately, but their focus has mainly been CS. I thought the Web Applications class was really well done. Python is even my new favorite scripting language because of it.
  • I'm in similar but slightly different position.... I went to a well-known university but didn't have a chance to finish my degree. I've been working as an datacenter operations linux system engineer for some 10years now... I want to move up to management but without a degree it seems to hard. Additional life pressure has added on... now that I'm married and have a baby. I still wanna go back to college and get an MIS degree... and hopefully MBA if I still have time after that... It just seems that after
    • Yep, lazy. At the age of 46 I decided to try college. My boss let me take two days a week off and I had night classes two other days after work. I still got in almost 40 hours at work with long days and working Saturdays. I only did it for one semester but I did get a raise and put on salary.

      My 29 year old son in law needs one more semester to complete his AA. He could move up to management then but he wont make the effort.

  • First, if you want to learn new programming languages, just do so. Your education in CS should have given you the necessary skills to do so. In the end there are only a few paradigms and concepts present in all the languages you mentioned. Nothing you did not already have in some way in university or school.

    Second, it is true that there are more openings in those areas. However, there are also much more competitors for those jobs. Most students learn Java or at some strange universities C# and .Net. Further

  • You can pick these skills up from online courses and self-study. College would through you in with a bunch of software engineering newbs and cost you way more than you need to spend.

  • My rule of thumb is that most everything you know now will be useful, but mostly obsolete in ten years or less. That makes extracurricular learning a constant and ongoing process. There are a multiple ways to accomplish this. The best way will depend on your learning style. The areas you study will depend on both your interests and available opportunities.

    You already have a Bachelor's from a good school. An additional degree in computer technology isn't going to deliver a lot of value. You've been working

  • by K. S. Kyosuke ( 729550 ) on Friday February 14, 2014 @03:19PM (#46248771)
    Given how difficult it is to replace firmware, and how crappy a lot of it is, I would have thought that the world needs more (and not fewer) firmware developers.
  • As a former firmware engineer myself, let me assure you that the rest of the coding world views us as the elites-of-the-elites. Yes, you need to know SQL and Javascript to get a job these days, but if you can pick those up (you can), you'll have a distinct edge over virtually everyone else applying for whatever job you want.

    And in case you wondered - Yes, you do have it harder than the rest of the coding world. Shit, I could sleep through my 9-to-5 and still outperform most of my peers at writing user-s
  • Both are quick to pick up and in highest demands and really have zero impact if visualization keeps accelerating. 100% US English is also great to have. Christopher Hull 219 613 3785
  • Unless I'm missing something, those are just languages. Learn the basics and start writing your own projects in the one/ones that interest you. I was hired as a C++ developer, but I've been required to learn Perl, Ruby, and Bash scripting to perform my job. Picking up a new language isn't a big deal, provided you have sufficient motivation to do it.

    You've got a CS degree from a good school. If you can claim a language on your resume and back it up with code, then I don't see a reason that you'd need to go
  • If you know C++, you have the fundamentals and then some. Picking up Java, C#, etc. will be something you can do in your spare time over a couple of weeks. I know, because I was hired as a Java programmer on the strength of my C++ experience, in spite of having written only one tiny Java class. I read an ebook and was productive immediately. Granted, it took a lot longer to learn all the rest of the ecosystem, like HTTP and all the godzillions of available libraries, but it wasn't hard.

    • ^-- This. Java and C# are both very easy to transition into from C++. You have the knowledge of OO concepts and also the (often lacking) knowledge of real-time, close to the metal issues. What I did was move into medical device work from embedded development / consumer electronics. It seems that C#/.NET is a dominant platform in med devices, though also some Linux here and there.

      You may need to make a job transition to get real experience that expands your breadth. From what I have seen, if you stay

  • college needs to change and HR needs to drop the need it to get a job part.

  • In my experience, the best programmers all have one (among others) critical skill: They have the ability to pick up new languages, APIs, technologies, etc., quickly and on their own. The fact that, after 10+ years as a programmer, you see ASP, .NET, C#, etc. as so formidable that you feel (apparently) that you might learn them more efficiently by sitting in a classroom and being spoon-fed would give me pause if I were considering hiring you for any developer position.

    • I'm afraid I deal with the debris of those "best programmers" on a weekly basis. They sometimes write brilliant, insightful, paradigm shifting core projects. Unfortunately, they then abandon supporting them or get switched to another task.

      It's up to the rest of us to unfurl the unnecessary recursion which is throttling performance, spot the hidden assumptions about data formats, reduce the unnecessary footprint due to writing custom subroutines to perform tasks built into the language as standard library ca

  • I think that a great way for people to further their knowledge and skill set is through taking online courses. I agree with some other comments in this thread about how college will only take you so far and you'll learn very rudimentary skills. I've been taking online programming courses for about half a year and have learned various programming languages and web development skills. I would suggest taking advantage of this sites deal https://learntoprogram.tv/cour... [learntoprogram.tv] They are giving access to over 25
  • In a lot of cases, a shiny new CS Degree actually hurts your chances of employment. Just learn the shit yourself, inside & out, design philosophy & all, contribute to a few FOSS projects &/or throw together some elaborate demo.
    • by Dareth ( 47614 )

      From the summary: " I have a computer science degree from Purdue and have been employed as a firmware engineer for 10+ years writing C and C++."
      Also from the summary: " I was thinking that a computer information technology degree would fit the bill..."

      As a person who also has a BS in computer science I ask, "Do you know how to make coffee?" If so, make yourself a pot and pretend you already have a degree in making coffee for the programmers.

  • If you prefer more structured learning then online courses are probably best as they tend to be more current. However most of the good coders I know would just grab a reference and start writing code. There are countless programmers out there whose only experience is in a high level language, and don't properly understand how things work at a lower level. If you are good in C and C++, you can better understand what the higher level languages are doing under the covers. C++ is far more complex than these oth

  • We have courses in all those areas, along with real world projects that you work on to build your portfolio.

  • A good tutorial book. A. GOOD. TUTORIAL. BOOK. Or even a good online tutorial. But a tutorial is what is necessary, not a reference.

    You can't just pick up a reference book and start coding or solving problems from that. That's not what references are for. You need a good tutorial. A good tutorial is worth its weight in gold in my opinion.

    Some recommendations:
    For LAMP + Javascript development? Try "Learning PHP, MySQL and JavaScript" by Robin Nixon (O'Reilly).

    For Java? The Java Tutorial by Zakhour et. al. (

  • Keep your money for harsh times ahead. Learn what you can on your own. There is simply no promise that jobs will be available in the future. It seems that the corporations have killed off the ability of the public to purchase goods or services and the tragedy is compounded by over population and global warming. Food prices are already going nuts. The worst is yet to come.
  • I've managed to fit my post into the subject, so here I'll paste my Open Letter to Wacom instead. Enjoy, and please don't moderate off-topic since the Comment Subject is the entire post and is on topic, but I've got to put something meaningful here to get through the filter.

    From https://www.facebook.com/john.... [facebook.com]

    (hint: copy and paste into a fixed width editor and reformat to taste, taking care to make my signature look like John.)

    An Open Letter to Wacom,

    Re: Drivers that don't drive properly, and are welded

  • If you are looking to get a job with a big faceless corporation their HR department will probably be quite happy if you have some paper. Even if the job has requirements such as Node.js or MongoDB I suspect they would prefer if you were somehow "certified" in these areas.

    But if I were hiring someone I would just say, "Prove it." by basically having the person show me something interesting they built using the technologies claimed.

    Beyond that the key is families of knowledge. C# probably shows you know
    • About Lisp --- yes, ancient academics still use it. But the cutting edge of Lisping seems to be Scheme these days, and its very much alive indeed, with implementations like Racket (with excellent educational resources), Gambit (which gets along well with C), guile (the FSF's scripting language), and many others, In the user communities around Racket, for example, you see an eagerness to try new things and redesign the language for future generations.

      -- hendrik

  • Have you forgotten what is a public library? There are also very affordable courses on the internet, from zero to what you are willing to pay.

    I have self taught myself C, C++, assembly (multiple), pascal, and a few other languages. My expenses thus far, are two manuals for around $70/ea.
    Am I too cheap? No, I am anxious to learn and I have bills to pay. If I can't borrow the books or follow the courses online, I do without. I just take an alternate language course.

       

I have hardly ever known a mathematician who was capable of reasoning. -- Plato

Working...